最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript三元運算符的多種使用技巧

 更新時間:2015年04月16日 11:26:15   投稿:junjie  
這篇文章主要介紹了JavaScript三元運算符的多種使用技巧,本文講解了普通用法、稍微聰明點的用法、甚至更變態(tài)些的用法等,需要的朋友可以參考下

發(fā)現(xiàn)代碼慢慢寫多了的時候會不自覺的將if else 用 三元來替代,僅僅是未了讓代碼更簡潔精辟,當然也有人說用三元可以讓你有高潮的感覺。最近在寫js 的時候也有這樣的感覺,并且收集了一些小技巧,分享分享。

大鳥請?zhí)^下面這段,大大鳥幫忙指正 ^__^

====普及線====

表達式 (expr1) ? (expr2) : (expr3)

在 expr1 求值為 TRUE 時的值為 expr2,在 expr1 求值為 FALSE 時的值為 expr3。

============

普通用法

當你發(fā)現(xiàn)你經常用if else

復制代碼 代碼如下:

if(拜春哥 || 拜考試帝){
    不掛科;
}else{
    門門掛;
}

那么三元的表示法就是
復制代碼 代碼如下:

拜春哥 || 拜考試帝 ? 不掛科 : 門門掛

很帥氣的發(fā)現(xiàn)代碼 精辟了 好多。

日常中經常會有這樣的 if else 判斷,特別是嵌套比較多的時候 用三元是比較和諧的,可以讓你的代碼看起來更加清爽,結構清晰。

稍微聰明點的用法
通過不斷的變化,可以衍生出很多三元的用法。如下一段jquery代碼

復制代碼 代碼如下:

flag ? $('body').addClass('hover') : $('body').removeClass('hover') ;

甚至更變態(tài)些的。
復制代碼 代碼如下:

$('.item')[ flag ? 'addClass' : 'removeClass']('hover')

上面的代碼看著比較困惑。因為當flag = true 的時候 ,代碼就變成以下代碼:
復制代碼 代碼如下:

$('.item')['addClass']('hover')

這樣寫法等同于。
復制代碼 代碼如下:

$('.item').addClass('hover')

再升華一下

可以根據需要來調用自己想要的function來處理更多的事情。

復制代碼 代碼如下:

function a(){
      do something
}
function b(){
      do something
}

flag ? a() : b();

那么為師的完全體

于是有了這么個案例,兩個按鈕 一個向前的行為,一個向后的行為。操作的功能都差不多。

復制代碼 代碼如下:

    var action_turn = function(e, type){
        var self = $(e).closest('li');
        var target = self[type === 'prev' ? 'prev' : 'next']();
        target.addClass('has-img');
        self.removeClass('has-img')
    }

    var btn_next = $('#item-photo-panel a.next')
    btn_next.click(function(){
        action_turn(this, 'next');
        return false;
    });
    var btn_prev = $('#item-photo-panel a.prev')
    btn_prev.click(function(){
        action_turn(this, 'prev');
        return false;
    });


盡量避免的情況
復制代碼 代碼如下:

alert( true ? 'true' : false ? 't' : 'f' )

我指的是盡量避免如上嵌套的 三元,因為在js 中 語句是從右到左,上面的代碼等同于
復制代碼 代碼如下:

alert( true ? 'true' : ( false ? 't' : 'f' ) )

如php 中這個結果就完全不一樣,三元嵌套的時候是優(yōu)先左邊的。
復制代碼 代碼如下:

echo (( true ? 'true' :  false ) ? 't' : 'f'  )  //php中

tip:
另外發(fā)現(xiàn)php中的三元有這樣的提示

Note: 注意三元運算符是個語句,因此其求值不是變量,而是語句的結果。如果想通過引用返回一個變量這點就很重要。在一個通過引用返回的函數中語句 return $var == 42 ? $a : $b; 將不起作用,以后的 PHP 版本會為此發(fā)出一條警告。

但是經過試驗,發(fā)現(xiàn)在javascript 中上面的做法是可以起作用的,大概是js 比較BT,嚴謹度沒有php那么大的原因。

相關文章

  • JavaScript中重名的函數與對象示例詳析

    JavaScript中重名的函數與對象示例詳析

    最近同事問了一個問題,說在js中如果函數與對象重名了會怎么樣?仔細詳細這個問題值得討論一下,所以便有了這篇文章,這篇文章主要給大家介紹了關于JavaScript中重名的函數與對象的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧啊。
    2017-09-09
  • JS驗證日期的格式YYYY-mm-dd 具體實現(xiàn)

    JS驗證日期的格式YYYY-mm-dd 具體實現(xiàn)

    這篇文章介紹了JS對日期格式的驗證實例,有需要的朋友可以參考一下
    2013-06-06
  • js判斷一個字符串是以某個字符串開頭的簡單實例

    js判斷一個字符串是以某個字符串開頭的簡單實例

    下面小編就為大家?guī)硪黄猨s判斷一個字符串是以某個字符串開頭的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 微信小程序框架的頁面布局代碼

    微信小程序框架的頁面布局代碼

    這篇文章主要介紹了微信小程序框架的頁面布局代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • js實現(xiàn)仿QQ秀換裝效果的方法

    js實現(xiàn)仿QQ秀換裝效果的方法

    這篇文章主要介紹了js實現(xiàn)仿QQ秀換裝效果的方法,實例分析了javascript操作圖片的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 淺析Bootstrap縮略圖組件與警示框組件

    淺析Bootstrap縮略圖組件與警示框組件

    縮略圖在網站中最常用的就是產品列表頁面,一行顯示幾張圖片,有的在圖片底下帶有標題、描述內容、按鈕等信息。本文給大家介紹Bootstrap縮略圖組件與警示框組件,感興趣的朋友一起學習吧
    2016-04-04
  • Javascript實現(xiàn)倒計時(防頁面刷新)實例

    Javascript實現(xiàn)倒計時(防頁面刷新)實例

    本文分享了Javascript實現(xiàn)倒計時并且頁面不刷新的實例,具有很好的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • 使用taro開發(fā)微信小程序遇到的坑總結

    使用taro開發(fā)微信小程序遇到的坑總結

    Taro,京東凹凸實驗室出品的適配多端的一個框架,這篇文章主要介紹了使用taro開發(fā)微信小程序遇到的坑總結,需要的朋友可以參考下
    2019-04-04
  • JS左右無縫輪播功能完整實例

    JS左右無縫輪播功能完整實例

    這篇文章主要介紹了JS左右無縫輪播功能,結合完整實例形式分析了javascript事件響應及頁面元素屬性動態(tài)變換相關操作技巧,需要的朋友可以參考下
    2019-05-05
  • JavaScript中的數學運算介紹

    JavaScript中的數學運算介紹

    這篇文章主要介紹了JavaScript中的數學運算介紹,本文先是講解了數學運算的一些知識,然后給出了操作實例,需要的朋友可以參考下
    2014-12-12

最新評論

镇坪县| 哈尔滨市| 仙居县| 南澳县| 城口县| 木里| 阜阳市| 社会| 长春市| 光山县| 元阳县| 安国市| 山阴县| 丰镇市| 家居| 读书| 曲沃县| 同德县| 芮城县| 葫芦岛市| 云安县| 香格里拉县| 嘉义县| 镇赉县| 苏尼特左旗| 岳阳县| 铜山县| 景宁| 宜兰县| 峡江县| 读书| 务川| 百色市| 镇赉县| 郁南县| 沈阳市| 大邑县| 公安县| 博白县| 永胜县| 晋城|