【Javascript】流程控制語句、函數(shù)和作用域

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 有什么作用?

如果表達(dá)式等于case的值,對應(yīng)的語句就會執(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í)行順序應(yīng)為(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的判斷

博客再補,通過學(xué)習(xí),簡單的總結(jié)就是:

  • if(xx) 應(yīng)當(dāng)把xx轉(zhuǎn)換成布爾值之后判斷
  • xx == xx 應(yīng)當(dāng)把xx轉(zhuǎn)換成數(shù)字進行比較判斷
    其中有一些特殊的東西:
  • NaN === NaNfalse
  • 空字符串轉(zhuǎn)布爾值為false,其他字符串為true

參考文章

JavaScript NaN屬性|W3School
JavaScript 遍歷數(shù)組的方式for循環(huán)&for in|腳本之家

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容