本文帶給大家詳解JavaScript中的流程語句,有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。
一開篇概述
本講主要解說JavaScript流程語句,大致內容包含如下:
其中,常用的if,while,do ..while,for在本片文章就不論述,重點論述for..in..,label,break和continue,whth,switch等語句
#二內容區
(一)常用語句
由於如下語句比較通用,這篇文章就不再論述
1.條件語句
if語句
2.循環語句
while語句,do.while語句,for語句
#(二) for..in..語句
1.定義
for...in...,是迭代語句,用來列舉對象的屬性,其語法定義為:
for (propName in expression) statement
基於在JavaScript開發中"能使用局部變量,就不要使用全域變數"原則,建議將propName屬性定義為局部變量,如下所示:
for (var propName in expression) statement
2.注意點
(1)for....in是用來列舉物件屬性的,而不是列舉物件屬性值。
範例1:
如下例子,for..in..輸出的是陣列索引(即陣列屬性),而不是陣列索引值。
var i = 5; var arr = new Array(); for (var n = 0; n <p>範例2:</p><p>如下例子,for..in..輸出的是物件userInfo的屬性(name,age,address),而不屬性值(Alan_beijing,38,china -shanghai)</p><pre class='brush:php;toolbar:false;'>var userInfo = { name: 'Alan_beijing', age: 38, address: 'china-shanghai' }; for (var property in userInfo) { alert(property);//name,age,address5 }
(2)for..in..枚舉屬性,沒有確定的順序,不同的瀏覽器,會有所差別。
(3)ECMAScript5版本之前,如果被迭代物件變數值null或undefined,for語句會拋出錯誤,ECMAScript5之後,這種情況不會拋出錯誤,但不執行迴圈體。
(三) label
1.定義
在JavaScript中,label語句表示標籤語句,通常與循環語句使用,表示循環語句跳到指定位置。
1 label:statement
範例1:
如下程式碼包含一個label語句outermost,其內容為兩個嵌套的循環體,當循環體執行到1==5且j==5時,break語句將跳到outermost語句繼續執行。
var num = 0; outermost: for (var i = 0; i < 10; i++) { for (var j = 0; j < 10; j++) { if (i == 5 && j == 5) { break outermost; } num++ } } alert(num);//55
(四) break和continue
1.定義
break和continue都表示在循環體中,根據特定的條件退出循環體,但兩者又有區別,break表示退出整個循環體,continue表示退出滿足條件的該次循環體。
範例1:
如下程式碼,當執行i=5時,就退出整個循環體。
var num = 1; for (var i = 1; i < 10; i++) { if (i % 5 == 0) { break; } num++; } alert(num);//5
範例2:
如下程式碼,當執行i=5時,退出本次循環,然後回到for語句開頭,繼續執行。
var num = 1; for (var i = 1; i < 10; i++) { if (i % 5 == 0) { continue; } num++; } alert(num);//9
2.注意點
(1)break和continue跳出循環體時,表示只跳出直接所在循環體,而不是除了直接循環體外的其他循環體。
例子1:
如下例子,break只跳出直接循環體
例子2:
如下例子,continue只跳出直接迴圈體
var num = 0; for (var i = 0; i < 10; i++) { for (var j = 0; j < 10; j++) { if (i == 5 && j == 5) { continue; } num++ } } alert(num);//99
2.break和continue一般結合標籤語句運用,表示跳到指定位置
##範例:如下程式碼,當執行到i=5 && j==5時,就跳到標籤語句outermost處,繼續執行。這裡要注意的是,JavaScrip沒有區塊級作用域,因此在for語句外部是能夠存取變數i的var num = 0; outermost: for (var i = 0; i < 10; i++) { for (var j = 0; j < 10; j++) { if (i == 5 && j == 5) { break outermost; } num++ } } alert(num);//55
(五) with
1.定義with語句將程式碼作用域設定到特定物件中,其主要目的是簡化多次編寫相同對象,提高複用。1 with (expression) statement範例:如下程式碼定義了一個取得使用者資訊函數,在函數體內new了一個person對象,且定義兩個屬性(name和address),然後將person對象with起來。
function GetUserInfo() { var person = new Object(); person.name = "Alan_beijing"; person.address = "China-shanghai"; with (person) { return name +","+ address; } } alert(GetUserInfo());//Alan_beijing,China-shanghai2.注意點(1)在JavaScript開發中,慎用with語句,主要原因有二:其一是with語句影響效能;其二是with語句在嚴格模式下,會出錯(2)with語句將公有物件括起來,從而提高程式碼簡潔度和提高程式碼複用性(3)在執行with語句體內尋找變數時,先看with體內是否存在所查找變量,若不存在,再查找with括起來的變數是否有要找的屬性。 如下範例更能體現這個原則:
function GetUserInfo() { var person = new Object(); person.name = "Alan_beijing"; person.address = "China-shanghai"; person.age = 35; with (person) { var sex = "男"; var age = 40; return name + "," + sex + "," + age +","+ address; } } alert(GetUserInfo());//Alan_beijing,男,40,China-shanghai
(六) switch
1.定義switch語句就是我們平常所說的開關語句,它非常適用於多條件情況。switch (expression) { case value: statement break; case value: statement break; default:statement }範例:
如下代码,根据城市名称,查询城市类别
//根据不同城市,判断其属于几线城市 function CityType(address) { switch (address) { case "Shanghai": alert("中国一线城市"); break; case "Shenzhen": alert("中国一线城市"); break; case "Beijing": alert("中国一线城市"); break; default: alert("中国非一线城市"); } } CityType("Shenzhen");//中国一线城市
2 注意点
(1)switch本质与if是一样的,都是解决多条件多分支问题;
(2)使用switch语句的真正目的是避免使用过多的if..else if ...else....语句;
三 总结
本篇文章主要结合代码介绍了JavaScript的流程语句及其使用,重点结束了with,switch,for...in..,label,break和continue等语句,需要注意的是,在JavaScript中,流程语句都没有块级作用域,至于什么是块级作用域,将在接下来的文章中与大家分享。
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问JavaScript视频教程!
相关推荐:
以上是詳解JavaScript中的流程語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器