Javascript中的break each指的是中斷循環的操作。它可以用于各種類型的循環結構中,包括for、for...in、while、do...while,甚至是forEach()這種基于數組的遍歷方法。break each的作用是在循環的某個特定點中停止執行,從而避免無限循環,減輕瀏覽器的壓力,提升代碼性能。
一個經典的應用場景就是查找數組中的某個元素是否存在。舉個例子,我們有一個存儲數字的數組,要查找其中是否存在某個數字,可以通過遍歷數組來查找。使用for循環的情況下,可以在找到目標元素時立即跳出循環,而不必繼續遍歷數組。示例代碼如下:
var arr = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]; var targetNum = 5; var isFound = false; for(var i=0; i在上面的代碼中,break的作用是在找到目標元素時,跳出循環并賦值為true。isFound變量用于保存查找結果,最終根據isFound的值彈出相應的提示框。 除了普通的for循環,break each也可以應用于for...in循環。for...in循環用于枚舉對象的屬性名稱,并可以對每個屬性執行相應的操作。類似于for循環,我們也可以使用break each來提前跳出循環。示例代碼如下: var obj = {name: 'Tom', age: 18, sex: 'male', grade: 'A'}; for(var key in obj){ if(obj[key] === 'male'){ alert('這個人是男的!'); break; } }在上面的代碼中,我們以一個包含個人信息的對象為例,查找其中是否存在“male”性別的屬性。當查找到“male”屬性時,break each會立即跳出循環,并彈出“這個人是男的!”的提示框。 除此之外,break each還可以應用于while和do...while循環。while循環只有條件為true才會一直執行,出現break each則會提前結束循環。do...while循環與while循環類似,只不過do...while循環至少會執行一次循環語句。示例代碼如下:var num = 1; while(num< 10){ if(num === 5){ break; } num++; } alert(num); // num的值為5 var i = 0; do{ if(i === 3){ break; } i++; }while(i<5); alert(i); // i的值為3在上面的代碼中,我們分別對while和do...while循環進行了處理。當num的值為5時,break each會跳出while循環,并彈出num=5的提示框。同樣地,當i的值為3時,break each會跳出do...while循環,并彈出i=3的提示框。 最后,還需要注意一點:在Javascript中,break each只會中斷最內層的循環。如果嵌套了多層循環,必須使用多個break each才能完全跳出所有循環。下面的代碼就演示了這種情況:for(var i=0; i<3; i++){ // 外層循環 for(var j=0; j<3; j++){ // 內層循環 if(j === 1){ break; } console.log(i + '-' + j); // 輸出“0-0”、“1-0”、“2-0” } }在上面的代碼中,我們使用for循環嵌套,輸出了一組“數字-數字”的信息。當內部循環中j等于1時,break each會跳出內部循環,但不會影響外部循環。因此,只有每次j都為0時才會正常輸出。這是一項需要特別留意的細節。