1、var定義變量的作用域?yàn)榫植孔饔糜蚺c全局作用域
let、const定義變量的作用域?yàn)閴K級(jí)作用域 let、const的區(qū)別是let定義變量,const定義常量
2、js的循環(huán)方式有哪些?
for循環(huán)、while、do ... while
3、如何判定未知數(shù)據(jù)x的類型?
1)常見(jiàn)的方法typeof,typeof返回的類型都是字符串
2)instanceof:c instanceof Array、f instanceof Function等
3)根據(jù)對(duì)象的constructor判斷:c.constructor === Array、d.constructor === Date
4)使用Object.prototype.toString.call(x)
Object.prototype.toString.call(a) === ‘[object String]’
4、split()和join()的區(qū)別是?
split() 方法用于把一個(gè)字符串根據(jù)指定字符串分割成字符串?dāng)?shù)組
join() 方法用于把數(shù)組中的所有元素根據(jù)指定字符串拼接成一個(gè)字符串返回
5、請(qǐng)寫(xiě)出下列代碼的輸出順序。
1)function foo(){
console.log(1);
setTimeout(function(){
console.log(2);
}, 0);
console.log(3);
};
setTimeout(foo, 100);
console.log(4);
setTimeout創(chuàng)建了新的宏任務(wù)
輸出:4,1,3,2
2)function fun(){
var r = new Array();
for(var i = 0; i < 3; i++){
r[i]=function(){
return i;
}
}
return r;
}
var fun2 = fun()
for(var i = 0; i < fun2.length; i++){
console.log(fun2[i]());
}
閉包
輸出:3,3,3
3)var a = (1&&2&&5)||3;
console.log(a);
從左往右依次判斷
1&&2:2
2&&5:5
5 || 3:5
輸出:5
4)console.log(1 == true);
console.log(2 == true);
console.log(1 === true);
console.log(2 === true);
== 會(huì)進(jìn)行隱式轉(zhuǎn)換,使==兩邊類型相同再比較
true隱式轉(zhuǎn)換為1:Number(true)
=== 會(huì)先比較類型,類型不同就是false
輸出:true,false,false,false
上元教育王老師:15061576973