JavaScript 定義了幾種數(shù)據(jù)類型? 哪些是原始類型?哪些是復(fù)雜類型?原始類型和復(fù)雜類型的區(qū)別是什么?
1.Number 2.string 3. Boolean 4.object 5.null 6.undefined 7. symbol
原始類型(基本類型):1.Number 2.string 3. Boolean 5.null 6.undefined 7. symbol
復(fù)雜類型: 4.object
區(qū)別:復(fù)雜數(shù)據(jù)類型是多個(gè)原始數(shù)據(jù)類型的集合,原始數(shù)據(jù)類型不能再細(xì)分,不是對(duì)象也沒(méi)有方法。
typeof和instanceof的作用和區(qū)別?
typeof可以用來(lái)檢測(cè)原始類型和函數(shù)類型以及undefined,判斷對(duì)象類型和null只能返回object.
instanceof用來(lái)判斷左邊對(duì)象的原型鏈上是否有右邊構(gòu)造函數(shù)的prototype屬性,instanceof可以用來(lái)判斷對(duì)象類型
如何判斷一個(gè)變量是否是數(shù)字、字符串、布爾、函數(shù)
typeof 123 === 'number' //判斷是否是數(shù)字
typeof '123' === 'string' //判斷是否為字符串
typeof true ==='boolean' //判斷是否為布爾
typeof a ==='function' //判斷是否為函數(shù)
NaN是什么? 有什么特別之處?
全名Not a Number. 類型是Number
1.NaN不等于任何值 包括它本身
2.任何涉及NaN的操作都會(huì)返回NaN
如何把非數(shù)值轉(zhuǎn)化為數(shù)值?
var a="456"
1. parseInt(a);
2. parseFloat(a);
3. Number(a);
4. a*1;
5. +a
==與===有什么區(qū)別
=== 只會(huì)在比較的兩個(gè)值不經(jīng)過(guò)任何轉(zhuǎn)換就相等的情況下返回 true。
break與continue有什么區(qū)別
break會(huì)直接跳出當(dāng)前循環(huán)體。
continue會(huì)跳過(guò)當(dāng)次循環(huán)進(jìn)入下次循環(huán)。
void 0 和 undefined在使用場(chǎng)景上有什么區(qū)別
void運(yùn)算符的作用是執(zhí)行一個(gè)表達(dá)式,然后返回undefined。undefined被賦值后,或者我們無(wú)法判斷undefined是否被賦值時(shí),可以使用void 0
以下代碼的輸出結(jié)果是?為什么?
console.log(1+1); // 2 數(shù)字+數(shù)字=數(shù)字
console.log("2"+"4"); // 24 字符串+字符串=字符串拼接
console.log(2+"4"); // 24 數(shù)字+字符串 = 字符串拼接
console.log(+"4"); // 4 Number("字符串")
以下代碼的輸出結(jié)果是?
var a = 1; // undefined
a+++a; // 3
typeof a+2; // "Number2"
以下代碼的輸出結(jié)果是? 為什么
var a = 1;
var b = 3;
console.log( a+++b ); // 4
輸出結(jié)果是4,先執(zhí)行的是a++部分,這部分運(yùn)算完成之后仍然為1,但是此時(shí)a為2了,所以結(jié)果為1+3=4。
遍歷數(shù)組,把數(shù)組里的打印數(shù)組每一項(xiàng)的平方
var arr = [3,4,5];
arr.forEach(function(item){
console.log(item*item);
})
遍歷 JSON, 打印里面的值
var obj = {
name: 'hunger',
sex: 'male',
age: 28
}
for(var i in obj){
if(!obj.hasOwnProperty(i)){continue;}
console.log(obj[i]);
}
以下代碼輸出結(jié)果是? 為什么 (選做題目)
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val)
// "Number2"
1. typeof a 結(jié)果為 "Number"
2. b || c >0 結(jié)果為 2
3. var val = "Number"+2 結(jié)果為"Number2"
var d = 5;
var data = d ==5 && console.log('bb')
console.log(data)
// bb undefined
1. (d ==5) && (console.log('bb')) 返回console.log('bb')的求值結(jié)果,即undefined.
2. var data = undefined
var data2 = d = 0 || console.log('haha')
console.log(data2)
// "haha"
// undefined
1. 0 || console.log('haha') 結(jié)果為 undefined
2. d=undefined
3. data2=undefined
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x)
// 2
1. (!"world", !!"from here!!") 返回!!"from here!!" 結(jié)果為1
2. !!"Hello" 結(jié)果為 1
3. var x = 1+1 結(jié)果為2