d---
NaN是什么? 有什么特別之處?
NaN
簡單的理解是:NaN是一個數(shù)值虏束,但具體不知道是多少
我們先用typeof看看NaN的數(shù)據(jù)類型可以驗證其數(shù)據(jù)類型
typeof NaN
"number"
特點
NaN 與其他數(shù)值進行比較的結(jié)果總是不相等的,包括它自身在內(nèi)垦页。
因此掌唾,不能與 Number.NaN 比較來檢測一個值是不是數(shù)字放前,而只能調(diào)用 isNaN() 來比較忿磅。
break與continue有什么區(qū)別?
break和continue語句用于在循環(huán)中精確控制代碼的執(zhí)行
- break
用于強制退出循環(huán)體,執(zhí)行循環(huán)后面的語句 - continue
用于退出本次循環(huán)凭语,執(zhí)行下次循環(huán)
switch case 語句中的 break 有什么作用?
如果表達式等于case的值葱她,對應的語句就會執(zhí)行,break關(guān)鍵字會使程序跳出switch語句
以下代碼的輸出結(jié)果是? 為什么
var a = 1;
var b = 3;
console.log( a+++b );
- 輸出結(jié)果
結(jié)果為4 - 原因
主要判斷a+++b
的具體執(zhí)行順序似扔,根據(jù)運算符優(yōu)先級可知吨些,++
運算符優(yōu)先級高于+
,且自增的后置運算符的優(yōu)先級高于前置運算符虫几,所以執(zhí)行順序應為(a++)+b
遍歷數(shù)組锤灿,把數(shù)組里的打印數(shù)組每一項的平方
var arr = [3,4,5]
解題如下挽拔,使用for in
的方法
var arr = new Array(3, 4, 5)
for(var item in arr) {
console.log(arr[item]*arr[item]);
}
以下代碼輸出結(jié)果是? 為什么?
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val)
輸出為number2 // (typeof 2)+(b||c>0)
var d = 5;
var data = d ==5 && console.log('bb')
console.log(data)
輸出bb // (d==5)&&(console.log('bb'))
var data2 = d = 0 || console.log('haha')
console.log(data2)
輸出haha // 0||console.log('haha')為'haha',賦值給d辆脸,再賦值給data2
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x)
輸出2 // !!"Hello"為true, (!"world", !!"from here!!")也為true,兩true相加轉(zhuǎn)換為數(shù)字1+1,得2
關(guān)于 if(xx)和 a==b的判斷
博客再補螃诅,通過學習啡氢,簡單的總結(jié)就是:
- if(xx) 應當把xx轉(zhuǎn)換成布爾值之后判斷
- xx == xx 應當把xx轉(zhuǎn)換成數(shù)字進行比較判斷
其中有一些特殊的東西: -
NaN === NaN
為false
- 空字符串轉(zhuǎn)布爾值為
false
,其他字符串為true
參考文章
JavaScript NaN屬性|W3School
JavaScript 遍歷數(shù)組的方式for循環(huán)&for in|腳本之家