摘要:前言基本上,我們每天都在和中的各種語句進行著溝通,那些我們經(jīng)常見面的老朋友,或者是未曾見面的新朋友,它們共同維護著的流程,讓我們的程序穩(wěn)步運行。
前言
基本上,我們每天都在和 JavaScript 中的各種語句進行著 溝通 ,那些我們經(jīng)常見面的 老朋友,或者是未曾見面的 新朋友 ,它們共同維護著 JavaScript 的流程,讓我們的程序穩(wěn)步運行。那么,你是否對它們足夠了解呢
如果文章中有出現(xiàn)紕漏、錯誤之處,還請看到的小伙伴多多指教,先行謝過
以下↓
JavaScript 區(qū)分表達式和語句。表達式是輸出值的,并且可以寫在任何需要一個值的地方.籠統(tǒng)來說,一個語句表示執(zhí)行了一個動作條件語句 if語句
語法:
if (condition) statement1 else statement2 // condition 值為真或假的表達式 // statement1 當 condition 為真時執(zhí)行的語句 // statement2 當 condition 為假時執(zhí)行的語句
if 語句大概是我們接觸特別多的條件語句了,根據(jù)不同的判斷條件執(zhí)行不同的邏輯
多層 if...else 語句可使用 else if 從句
if (condition1) statement1 else if (condition2) statement2 ... else statementNswitch語句
switch 語句評估一個表達式,將表達式的值與 case 子句匹配,并執(zhí)行與該情況相關(guān)聯(lián)的語句
語法:
switch (expression) { case value1: // 代碼塊 break; case value2: // 代碼塊 ... default // 代碼塊 }
switch 在比較值時,使用的是全等操作符 === ,因此不會發(fā)生類型轉(zhuǎn)換迭代語句 do-while語句如果多個 case 與提供的值匹配,則選擇匹配的第一個 case
如果沒有 case 子句相匹配,程序則會尋找那個可選的 default 子句,如果找到了,將控制權(quán)交給它,執(zhí)行相關(guān)語句;若沒有就執(zhí)行完 switch 語句
若 break 被省略,程序會繼續(xù)執(zhí)行 switch 語句中的下一條語句
do-while 是一種后測試循環(huán)語句,即只有在循環(huán)體中的代碼執(zhí)行之后,才會測試出口條件。換句話說,在對表達式求值之前,循環(huán)體內(nèi)的代碼至少會被執(zhí)行一次
語法:
do { statement } while(expression)while語句
while 語句屬于前測試循環(huán)語句,即在循環(huán)體內(nèi)的代碼被執(zhí)行之前,就會測試出口條件
語法:
while(expression) statement
當測試條件一直為真的情況下,就會形成一個死循環(huán)。所以在執(zhí)行階段,我們很有必要為循環(huán)設(shè)定結(jié)束條件for語句
for 語句也是前測試循環(huán)語句,它具有執(zhí)行循環(huán)之前初始化變量和定義循環(huán)后要執(zhí)行的代碼的能力
示例:
var count = 10; for(var i = 1; i < count; i++){ // 代碼塊 }
for 循環(huán)的執(zhí)行順序是 變量賦值==>判斷條件==> (符合就執(zhí)行代碼塊,再執(zhí)行 ++ 操作) == (不符合就直接跳出循環(huán))
使用 while 循環(huán)做不到的,使用 for 循環(huán)同樣也做不到,for 循環(huán)只是把與循環(huán)有關(guān)的代碼集中在了一個地方for-in語句
for-in 語句是一種精準的迭代語句,用來枚舉對象的屬性
語法:
for (variable in object) {...}
for...in 循環(huán)只遍歷可枚舉屬性for-of語句for..in 循環(huán)輸出的屬性名的順序是不可預(yù)測的。具體來講,所有屬性都會被返回一次,但返回的先后次序可能會因瀏覽器而異
for...in 會遍歷存在于原型對象的可枚舉屬性
for..in 不適合遍歷數(shù)組 數(shù)組的屬性就是它的索引
for...of 是 ES6 新增的迭代方式,規(guī)定了一個數(shù)據(jù)結(jié)構(gòu)只要部署了 Symbol.iterator 屬性,就被視為具有 iterator 接口,就可以用 for...of 循環(huán)遍歷它的成員,它的出現(xiàn)就是在一定程度上補充了 for...in 的不足
語法:
for (variable of object) {...}
具體可以 點擊這里
for...in 與 for...of 的區(qū)別
其他 break和continue語句break 和 continue 語句用于在循環(huán)中精確地控制代碼的執(zhí)行break 語句會立即退出循環(huán),強制執(zhí)行循環(huán)后面的語句;continue 語句雖然也是立即退出循環(huán),但是退出循環(huán)后會從循環(huán)的底部繼續(xù)執(zhí)行
var num = 0; for(var i = 1; i < 10; i++) { if(i % 5 === 0 ) { break; } num++; } num // 4 for(var i = 1; i < 10; i++) { if(i % 5 === 0) { continue; } num++ } num // 8label語句
使用 label 語句可以在代碼中添加標簽,以便將來使用
語法:
label: statement
label 語句一般都會配合 break 和 continue 使用,多用于多重循環(huán)
var count = 0; loop1: for(var i = 0; i < 10; i++) { loop2: for(var j = 0; j < 10; j++) { if (i == 5 && j == 5) { continue loop1; } count++ } } count // 95 // 不使用 label 語句的情況下會從里面的循環(huán)重新開始,使用 label 標識會從標識的循環(huán)重新開始with語句
with 語句的作用是將代碼的作用域設(shè)置到一個特定的對象中,主要目的是為了簡化多次編寫同一個對象的操作
var qs = location.search.substring(1); var hostName = location.hostname; var url = location.href; // 改寫如下 with(location) { var qs = search.substring(1); var hostName = hostname; var url = href; } // 使用 with 語句關(guān)聯(lián)了 location 對象
嚴格模式下不允許使用 with 語句debugger語句with會延長作用域
大量使用 with 語句會造成程序性能下降
debugger 語句,用來產(chǎn)生一個斷點,代碼的執(zhí)行會停在斷點的位置,這時使用調(diào)試器來輸出變量的值空語句
語法:
;
一般情況下,空語句會配合 for 循環(huán)來使用
for(;;;){ // 產(chǎn)生一個死循環(huán) }后記
當然,在 JavaScript 中還有其他的一些語句,比如聲明語句、復(fù)合語句等。了解它們的用法,我們就能在合適的場景去更好地使用它們,讓我們的代碼更加優(yōu)雅
如果你也是一個前端愛好者,如果你也想了解、分享更多前端的技能和有趣的東西,點擊這里 你將看到更多分享,歡迎 star 關(guān)注
期待同行
以上
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/103235.html
摘要:循環(huán)方法方法不改變原數(shù)組方法會給原數(shù)組中的每個元素都按順序調(diào)用一次函數(shù)。篩選出過濾出數(shù)組中符合條件的項組成新數(shù)組代碼方法方法為數(shù)組中的每個元素執(zhí)行一次函數(shù),直到它找到一個使返回表示可轉(zhuǎn)換為布爾值的值的元素。 showImg(https://segmentfault.com/img/bV2QTD?w=1600&h=500); 前言 JavaScript 發(fā)展至今已經(jīng)發(fā)展出多種數(shù)組的循環(huán)遍...
摘要:作用域鏈的用途,是保證對執(zhí)行環(huán)境有權(quán)訪問的所有變量和函數(shù)的有序訪問。作用域鏈的前端,始終都是當前執(zhí)行的代碼所在環(huán)境的變量對象。對語句來說,會將指定的對象添加到作用域鏈中。 前言 ps: 2018/05/13 經(jīng)指正之后發(fā)現(xiàn)惰性加載函數(shù)細節(jié)有問題,已改正在這里也補充一下,這些都是根據(jù)自己理解寫的例子,不一定說的都對,有些只能查看不能運行的要謹慎,因為我可能只是將方法思路寫出來,沒有實際跑...
摘要:類型的錯誤會在數(shù)值超出相應(yīng)范圍時觸發(fā)。最常發(fā)生類型錯誤的情況,就是傳遞給函數(shù)的參數(shù)事先未經(jīng)檢查,結(jié)果傳入類型與預(yù)期類型不相符。捕獲錯誤的目的在于避免瀏覽器以默認方式處理它們而拋出錯誤的目的在于提供錯誤發(fā)生具體原因的消息。 0 前言 目前讀到了《高程3》的錯誤檢測部分,現(xiàn)在先挖一個坑,關(guān)于錯誤檢測應(yīng)該寫三篇總結(jié):firebug檢測錯誤和輸出信息;try-catch錯誤捕獲;常見錯誤種類。...
摘要:類型的錯誤會在數(shù)值超出相應(yīng)范圍時觸發(fā)。最常發(fā)生類型錯誤的情況,就是傳遞給函數(shù)的參數(shù)事先未經(jīng)檢查,結(jié)果傳入類型與預(yù)期類型不相符。捕獲錯誤的目的在于避免瀏覽器以默認方式處理它們而拋出錯誤的目的在于提供錯誤發(fā)生具體原因的消息。 0 前言 目前讀到了《高程3》的錯誤檢測部分,現(xiàn)在先挖一個坑,關(guān)于錯誤檢測應(yīng)該寫三篇總結(jié):firebug檢測錯誤和輸出信息;try-catch錯誤捕獲;常見錯誤種類。...
摘要:在中函數(shù)是一等對象,它們不被聲明為任何東西的一部分,而所引用的對象稱為函數(shù)上下文并不是由聲明函數(shù)的方式?jīng)Q定的,而是由調(diào)用函數(shù)的方式?jīng)Q定的。更為準確的表述應(yīng)該為當對象充當函數(shù)的調(diào)用函數(shù)上下文時,函數(shù)就充當了對象的方法。 引言:當理解了對象和函數(shù)的基本概念,你可能會發(fā)現(xiàn),在JavaScript中有很多原以為理所當然(或盲目接受)的事情開始變得更有意義了。 1.JavaScript...
閱讀 2571·2021-08-20 09:38
閱讀 1355·2019-08-30 15:43
閱讀 593·2019-08-29 17:13
閱讀 1601·2019-08-29 14:01
閱讀 1314·2019-08-29 13:29
閱讀 2322·2019-08-23 18:29
閱讀 2047·2019-08-23 17:51
閱讀 1915·2019-08-23 17:16