pink:預解析,分支語句,迴圈語句,關鍵字1.預解析定義
(1)提前解析**
(2)多對script標籤中,函式重名不會衝突,預解析不會衝突;
2.變數預解析
(1)變數宣告預解析,提前到當前作用域的最上面
(2)原位置留存賦值**
3.函式預解析
(1)函式宣告預解析,提前到當前作用域的最上面
(2)呼叫可以在函式之上
(3)匿名函式的變數名會被提前,如果在函式定義前呼叫會bug
1.if語句
2.switch語句
3.「if-else if-else」和「switch-case」區別
(1)
if語句:2選1
if( ture /
false )
(ps:用aa&&bb可以代替if () ,&&
自帶執行)(2
)if-else語句:2選1
if( ture /
false)
else(3
)三元表示式:2選1
var lzy=
true
/false?**1
:**2(4
)if-else
if.....
else:多選一
if(true
/false)
else
if(true
/false)
else
(1)
switch語句
switch(固定值)
1.一般固定值用變數
2.=== 等號比較
3.遇到break退出;如果不遇到就往下執行,如果不寫break會導致其他的case也同樣執行
「if-else if-else」和「switch-case」區別專案
判斷條件
執行過程
條件if-else if-else
範圍從上到下執行(效率低)
條件少時效率高
switch-case
固定值直接跳到目標固定值執行(效率高)
條件多時效率高
迴圈的基本組成要素
計數器迴圈體
操作表示式
終止條件
for迴圈:for迴圈通常跟計數有關係
for(初始化變數;條件表示式;操作表示式;)
執行過程:
1.執行初始化變數,只執行一次
2.判斷初始化變數是否符合條件表示式,
3.false,跳出,ture,執行迴圈體
4.執行表示式3,使初始化值(計數器)改變,直接跳轉到2
while迴圈:更複雜的條件判斷,do while 和 while 較多
(1)do
while 迴圈:至少執行一次
var lzy=0do
while(true
/false)
(2)while 迴圈:迴圈**執行完畢後,程式會返回去繼續判斷true
/false,計數器需要自己新增
var 計數器=
1while (true
/false)
1.continue:跳出當前次迴圈,跳到 i++上,進行下次迴圈
使用:一般迴圈加分支語句
2.break:跳出迴圈,(迴圈結束),進行之後的**
使用:一般迴圈加分支語句
3.return:遇到return會跳出函式以及迴圈
JS執行順序
一 語法分析 瀏覽器將所有js檢查一遍,看有沒有語法錯誤,這裡並不會執行,沒有錯誤則進行第二步,預編譯 二 預編譯 首先要理解函式宣告整體提公升,變數 宣告提公升。這裡要注意變數的提公升,一般我們宣告乙個變數都是 var a 1 console.log a 1 但實際上拆分成了兩步,真正執行是這樣的...
js執行順序
執行緒 cpu 排程的最小單位 程序 cpu 資源分配的最小單位 js是單執行緒的,在同一時間,只能做一件事。但是js有同步任務和非同步任務。同步 有a,b兩段 執行完a後執行b 非同步 有a,b兩段 a和b同時執行 在非同步任務中還有微任務和巨集任務 微任務 promise,process.nex...
js 執行順序
同步任務 非同步任務 同步任務 立即執行 非同步任務 進入到非同步佇列當中 event queue eg ajax,settimeout,then,setinterval event loop 事件迴圈 task macro task 巨集任務 micro task 微任務 macro task 巨...