JavaScript 定義了幾種數(shù)據(jù)類型? 哪些是原始類型?哪些是復(fù)雜類型?原始類型和復(fù)雜類型的區(qū)別是什么?
JS的數(shù)據(jù)類型包括:
1帜平、數(shù)值;2序仙、字符串突颊;3、布爾值潘悼;4律秃、undefined;5治唤、null棒动;6、對(duì)象宾添。
其中船惨,數(shù)值、字符串缕陕、布爾值屬于原始類型(primitive type)的值粱锐。它們是最基本的數(shù)據(jù)類型,不能再細(xì)分了扛邑;
而將對(duì)象稱為復(fù)雜類型(complex type)的值卜范。因?yàn)橐粋€(gè)對(duì)象往往是多個(gè)原始類型的值的合成,可以看作是一個(gè)存放各種值的容器鹿榜。
typeof和instanceof的作用和區(qū)別?
利用typeof運(yùn)算符可以直接返回一個(gè)變量的數(shù)據(jù)類型海雪;
而instanceof則用于判斷一個(gè)變量是否屬于某種數(shù)據(jù)類型,它會(huì)返回一個(gè)布爾值舱殿。
如何判斷一個(gè)變量是否是數(shù)字奥裸、字符串、布爾沪袭、函數(shù)
直接使用typeof運(yùn)算符+被判斷的對(duì)象湾宙。
返回值number代表數(shù)字樟氢,string代表字符串,boolean代表布爾值侠鳄,function代表函數(shù)埠啃。
NaN是什么? 有什么特別之處?
當(dāng)undefined轉(zhuǎn)化為數(shù)值時(shí),即為NaN伟恶。它的含義是Not a Number碴开,表示非數(shù)字。
NaN和任何值都不相等博秫,包括自己潦牛。
如何把非數(shù)值轉(zhuǎn)化為數(shù)值?
利用以下三個(gè)函數(shù)可以把非數(shù)值轉(zhuǎn)換為數(shù)值:
1、Number()
2挡育、parseInt()
3巴碗、parseFloat()
==與===有什么區(qū)別
==表示近似相等,===表示嚴(yán)格相等即寒。
在使用==的時(shí)候橡淆,JS會(huì)先將不同數(shù)據(jù)類型的值轉(zhuǎn)換為同類型,再做比較母赵;而使用===則兩邊的值必須是同類型逸爵,再進(jìn)一步判斷是否相等。
break與continue有什么區(qū)別
break 用于強(qiáng)制退出循環(huán)體市咽,整個(gè)循環(huán)語(yǔ)句都不再執(zhí)行痊银,而執(zhí)行循環(huán)后面的語(yǔ)句;
continue 用于退出本次循環(huán)施绎,不執(zhí)行continue后面的語(yǔ)句溯革,而執(zhí)行下次循環(huán)。
void 0 和 undefined在使用場(chǎng)景上有什么區(qū)別
由于undefined是可以被賦值的谷醉,當(dāng)我們?cè)谡{(diào)用undefined進(jìn)行判斷時(shí)致稀,并不確定它是否被賦值,因此有可能對(duì)結(jié)果產(chǎn)生干擾俱尼。
而void 0 始終返回 undefined抖单,所以我們通常使用void 0 代替 undefined,這樣可以確保判斷結(jié)果的準(zhǔn)確性遇八。
以下代碼的輸出結(jié)果是?為什么?
console.log(1+1);
//輸出“2”矛绘。兩個(gè)數(shù)值相加,直接返回計(jì)算結(jié)果刃永。
console.log("2"+"4");
//輸出“24”货矮。兩個(gè)字符串拼接,返回24斯够。
console.log(2+"4");
//輸出“24”囚玫。數(shù)值2和字符串“4”相加喧锦,先將數(shù)值2轉(zhuǎn)化為字符串,再和“4”拼接抓督,返回24燃少。
console.log(+"4");
//輸出“4”。直接將字符串轉(zhuǎn)換為數(shù)值輸出铃在。
以下代碼的輸出結(jié)果是?
var a = 1;
a+++a;
typeof a+2;
//輸出“number2”阵具。typeof的優(yōu)先級(jí)高于+,所以先輸出(typeof a)為number涌穆,再和2拼接怔昨。
以下代碼的輸出結(jié)果是? 為什么
var a = 1;
var b = 3;
console.log( a+++b );
//輸出“4”雀久。a++是指在本條語(yǔ)句執(zhí)行完后再+1宿稀,所以先輸出1+3的值,a再執(zhí)行自增赖捌。
遍歷數(shù)組祝沸,把數(shù)組里的打印數(shù)組每一項(xiàng)的平方
var arr = [3,4,5]
for(var i=0;i<arr.length;i++){
console.log(arr[i]*arr[i]);
}
遍歷 JSON, 打印里面的值
var obj = {
name: 'hunger',
sex: 'male',
age: 28
}
for(var i in obj){
console.log(obj[i]);
}