1、常用寫法:
for(var i=0;iconsole.log(arr[i]);
每次都需要讀取一次arr.length,進行判斷
2、陣列的長度先快取起來
for(var i=0,len=arr.length;iconsole.log(arr[i]);
變數定義完整,不用再從陣列中取回長度,直接讓計算機判斷i與length
3、運用了js中的技巧
for(var i=0,val;val=arr[i++];)
粗看一開始會以為是錯誤的,因為語句沒有完整,不過迴圈會是10次,為什麼?
因為條件句第二句i<10;返回的是true;而在js中0,null,undefined,false和空字串都會是false值
所以,在i變為0的時候自動轉換為布林值false,從而進行迴圈結束終止;
這個理解了那再回頭看上面第三種寫法,i = 0與var同時放在初始條件,val = arr[i++]判斷,
如果arr[i++]大於了arr.length,則val就是未定義,判斷為undefined,判斷終止,迴圈結束;
故,迴圈中可以通過簡寫利用0,null,undefined,false和空字串等進行判斷,巧妙使用了js中的特定技巧。
python效率提公升專題 迴圈
author zhangbo2012 outlook.com 本案例使用三種方法遍歷乙個列表,並生成新列表。方法 說明 a 使用for迴圈遍歷列表中的每乙個元素,並插入到新列表中 b 使用構造列表法建立新列表 c 使用map方法建立新列表 測試 如下 import time oldstr footb...
提公升你的效率
最近發現工作中,老是有些很讓人煩躁的事情,而這些事情你不做就沒有人去做,從而會導致整個專案就會是有你的進度而確定的。先簡單概述下,狀況 我負責整合工作 有兩三個同事負責提供庫,還有乙個專案經理打包和一名測試人員,大家坐的位置比較分散。我這邊的 量不是很多,庫那邊的同事也主要是修改。但他媽的這個工作的...
js 中的變數提公升
我們知道當區域性變數和全域性變數同名時,區域性變數會覆蓋全域性變數。但我們看一段js var scope 全域性變數 functionf f 全域性變數 在全域性範圍 不再函式內 定義的變數 不管是否使用var 不使用var定義的變數都是全域性變數 js中沒有塊範圍指的是 在函式內無論在js中 定義...