国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

簡化一段javascript代碼

李增田 / 1590人閱讀

摘要:賦值操作合并首先,和這兩行沒必要寫成兩行,都是賦值,應此可以這樣優化去掉判斷如果把判斷,改成三元運算符,可以減少代碼,如下如果用符號,看起來更加方便當然,這兩行代碼,最終可以合并成如下代碼至此完成,最終行代碼簡化成一行代碼。

在實際的項目中,我們經常會有如下的需求:
從一個map中獲取某key的值,如果發現對應的key的值為null,則為該key創建一個值(一般為初始值),然后把這個值存回到map中,代碼如下:

var value = map[key];
if(value == null){
        value = "";
        map[key] = value;
}

但是總感覺這段代碼很惡心,為啥,太啰嗦,太長。 實際項目中,這種操作會技巧多,如果到處都是這種操作的話,就很讓人崩潰。壞蛋必須死。

賦值操作合并

首先,value = "" 和 map[key] = value這兩行沒必要寫成兩行,都是賦值,應此可以這樣優化:

var value = map[key];
if(value == null){
        value = map[key]  = "";
}
去掉if判斷

如果把if判斷,改成三元運算符,可以減少代碼,如下:

var value = map[key];
 value   = (value == null) ?( map[key]  = "") : value;

如果用 || 符號,看起來更加方便:

var value = map[key];
 value   = value || (map[key] = "");

當然,這兩行代碼,最終可以合并成如下代碼:

  var value = map[key]  || (map[key] = "");

至此完成,最終5行代碼簡化成一行代碼。

另外一個答案

拿這個問題問公司的小伙伴,下面是另外一種答案:

var value = map[key] = map[key]  ||  ""
總結

這個問題并不難,拿這個問題問小伙伴,一些人也可以給出正確答案。但平時沒有誰這樣去主動思考。

歡迎關注公眾號:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95500.html

相關文章

  • javascript 勻速運動實現側邊欄分享效果

    摘要:原理采用對象距離左邊的距離加固定速度。實現側邊欄分享效果用運動做一個側邊欄分享分享到當我們寫好一段代碼的時候,我們應該進行測試優化。實現側邊欄分享效果簡化速度參數用運動做一個側邊欄分享分享到 原理 采用offsetLeft(對象距離左邊的距離)加固定速度。 采用定時器setInterval和clearInterval 根據當前位置到目標位置是正值還是負值決定運行的速度為正值還是負值。...

    wind3110991 評論0 收藏0
  • 你真會用setTimeout嗎?

    摘要:什么交互都處理不了怎么辦簡化復雜度復雜邏輯后端處理的多線程上面都是的做法,但是也是處理這種問題的一把好手。換一種思路,上面就是利用實現一種偽多線程的概念。 教科書里面的setTimeout 定義很簡單 setTimeout() 方法用于在指定的毫秒數后調用函數或計算表達式。 廣泛應用場景 定時器,輪播圖,動畫效果,自動滾動等等 上面一些應該是setTimeout在大家心中的樣子...

    jsyzchen 評論0 收藏0
  • JavaScript的計時器的工作原理

    摘要:創建了一個簡單的計時器,在經過給定的時間后,回調函數將會被執行。接受一個計時器由之前兩種計時器返回并且停止計時器回調函數的執行。然而,我們可以注意到,當定時器再一次觸發在計時器回調函數正在執行的時候,這一次定時器回調函數被丟棄了。 最近都在看一些JavaScript原理層面的文章,恰巧看到了jQuery的作者的一篇關于JavaScript計時器原理的解析,于是誠惶誠恐地決定把原文翻譯成...

    geekzhou 評論0 收藏0
  • JS 異步的實現

    摘要:由于引擎同一時間只執行一段代碼這是由單線程的性質決定的,所以每個代碼塊阻塞了其它異步事件的進行。這意味著瀏覽器將等待著一個新的異步事件發生。異步的任務執行的順序是不固定的,主要看返回的速度。 我們經常說JS是單線程的,比如node.js研討會上大家都說JS的特色之一是單線程的,這樣使JS更簡單明了,可是大家真的理解所謂JS的單線程機制嗎?單線程時,基于事件的異步機制又該當如何,這些知識...

    sihai 評論0 收藏0
  • JavaScript 與 異步編程

    摘要:然而異步編程真正發展壯大,的流行功不可沒。于是從異步編程誕生的那一刻起,它就和回調函數綁在了一起。這個函數會起一個定時器,在超過指定時間后執行指定的函數。我們知道是異步編程的未來。 什么是異步(Asynchrony) 按照維基百科上的解釋:獨立于主控制流之外發生的事件就叫做異步。比如說有一段順序執行的代碼 void function main() { fA(); fB(); }...

    YFan 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<