JavaScript 基本語法及面試注意點

1、 表達式和語句
表達式一般都有值,語句可能有值也可能沒有,語句一般會改變環境(聲明、賦值),但這些都不是絕對的。

1 + 2 表達式值爲 3
console.log 表達式的值爲函數本身
add(1, 2) 表達式的值爲函數的返回值
console.log(3) 表達式的值爲 undefined,打印3
var a = 1 是一個語句,值爲 undefined

2、標識符的規則
第一個字符可以是 Unicode字母、$、下劃線(_)或中文
後面的字符,除了上述字符,還可以有數字
變量名是標識符
JavaScript 大小寫敏感

3、註釋
好的註釋:告訴你爲什麼要這樣寫
爛的註釋:告訴你寫了什麼

4、 if else 語句

// 打印結果是什麼?
var a = 1;
if(a === 2) 
    console.log(a);
    console.log('a等於2');
// 結果打印 a等於2,因爲 if 語句省略花括號時,只有一句

// 打印結果是什麼?
var a = 1;
if(a === 2) 
    console.log(a), console.log('a等於2');
// 結果什麼也不打印,因爲逗號表示語句未結束

// 前端常用 && 和 || 代替 if 語句
a = a || 100;
// 等同於以下語句
if(a) {
    a = a;
} else {
    a = 100; // 保底值
}

window.f1 && console.log('不存在');
false && 3 || true && 4;
/* 結果爲4。
 (1) 因爲與、或、非運算優先級  ! > && >|| ,所以先執行兩邊的 && 運算,最後執行 || 運算。
 (2) && 運算,左邊表達式判斷是 false,則返回左邊表達式的值,否則返回右邊表達式的值。
     false && 3 結果爲 false。true && 4結果爲4。
 (3) || 運算,左邊表達式判斷是 true,則返回左邊表達式的值,否則返回右邊表達式的值。*/

5.while / for 語句
for 循環:可以在很明確循環次數上去做內容
while 循環:不明確循環次數,也可以做。場景:如猜數字
do…while:至少會執行一次

// 是否會死循環?
var a = 0.1;
while(a != 1) {
    console.log(a);
    a = a + 0.1;
}
// 會死循環。因爲浮點數相加過程中逐漸不精確,無法到達1

// 執行完語句後 i 爲多少?
for(var i = 0; i < 5; i++) {
    console.log(i);
}
// i = 5

// 打印結果是什麼?
for(var i = 0; i < 5; i++) {
    setTimeout(() => {
        console.log(i);
    }, 0)
}
// 打印 5 次 5。
// for 循環先執行,每次執行把定時器放到事件隊列裏。
// 主線程 for 循環執行完了,纔會執行事件隊列裏的。
// 希望 5次按順序打出數字,將 var 改爲 let 即可。

// 幾秒打出幾?
for(var i = 0; i < 3; i++) {
    setTimeout(() => {
        console.log(i);
    }, 1000*i)
}
// 0 秒輸出一次 3,1 秒輸出一次3, 2 秒輸出一次 3。

6、break / continue
break 和 continue 跳出最接近的循環,對循環外的循環沒有影響。

7、 label 語句
語法如下

foo: {
    console.log(1);
    break foo;
    console.log('本行不會輸出');
}
console.log(2);
// 打印結果 1 和 2

// 以下是什麼?
{
    foo: 1;
}
// 是 label,值爲1

// 以下是什麼?
var a = {
    foo: 1
}
// 是對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章