記錄JS遇到的一些坑

1.typeof:未經定義的變量typeof返回"undefined"。

2.數據類型

1)js中 0 == '' 返回結果是 true

2)1 == '1'返回結果是true,但是在Map中1和'1'是不一樣的

3)在獲取輸入框數據進行計算時,請先轉換爲數字

4)undefined+任何數字結果都是NaN

5)字符串+undefined的結果爲字符串+'undefined'字符串

3.判斷:

1)if(data),當data爲0或者空串('')或者undefined時,一定不會進入判斷

2)if(!!data),代表判斷true或者false但是data並不一定是true或者false

4.易犯錯誤:

1)示例1:因爲函數不是在console.info()的時候就打印,而是把函數保存在外面,10個函數同一個作用域,並且都是10

var a = [];
for(var i=0; i<10; i++){
    a[i] = function (){
        console.info(i);
    }
}
for(var i=0; i<a.length; i++){
    // 輸出結果正常,但是循環完成之後數據全部是10
    a[i]();
}
for(var k=0; k<a.length; k++){
    // 輸出結果全部是10
    a[k]();
}

2)示例2:因爲num未定義,num爲undefined,undefined+任何數都是NaN

var num;
for(var i=1; i<=10; i++){
    num = num+i;
}
// 輸出結果是NaN
console.info(num);

3)示例3:return語句的行沒有其他內容時,會在return語句後面自動插入分號

var f1 = function (){
    return
    {
        test: 'test'
    }
}
// 打印結果是undefined
console.info(f1());

 

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