面試題答案分析

1.function fn(a){
console.log(a);
var a=2;
function a(){}
console.log(a)
}
fn(1)//function a(){} 2
參數a 相當于在函數內聲明了一個變量 a ,函數體內也有一個名字為a的函數聲明,由于預解析會將變量a覆蓋, 所以第一個打印出來的是function a(){},程序繼續(xù)執(zhí)行a被賦值為2所以打印出來2

2.var f=true;
If(f===true){
var a=10;
}
function fn(){
var b=0;
c=30;
}
fn();
console.log(a);
console.log(b);
console.log(c); //10然后報錯
變量a是全局變量,b是函數fn里的變量,在打印的時候找不到變量b 所以報錯

3 var a=10;
a.pro=10;
console.log(a.pro+a)//NaN;
var s=’hello’;
s.pro=’world’;
console.log(s.pro+s)//undefinedhello
基本類型加屬性程序不會報錯,但是會返回undefined,所以第一undefined與數字相加返回NaN,第二個相當于與字符串拼接,所以變成了字符串undefinedhello

4console.log(typeof fn);
function fn(){}
var fn;//function
預解析函數fn覆蓋了變量fn.所有類型是函數

5var s = "aaabbbcccaaabbbaaa";
var arr = s.split('');
var json = {};
for (var i = 0; i < arr.length; i++) {
if (json[arr[i]]) {
json[arr[i]] += 1;
} else {
json[arr[i]] = 1;
}
}
console.log(json);
var max = 0;
var str = '';
for (var key in json) {
if (max < json[key]) {
max = json[key];
str = key;
}
}
console.log(str);

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容