最近工作的事情特別多党饮,并且還要準(zhǔn)備一個長期出差即彪。奶卓。所以最近幾天先更一些面試題吧~
出差具體多長甥啄?存炮?
就是 北京總部已經(jīng)制定好的未來一段時間的安排 沒有打算讓我回北京的那種長期
當(dāng)然,面試題一出,各種知識點的問題就出來了穆桂,先做面試題宫盔,知識點我后邊會更。
一享完、關(guān)于引用類型值和基本類型值的面試題
var a = 10;
a.biu = 10;
console.log(a.biu + a);//打印什么灼芭?
var b = 'hello';
b.biu= 'world';
console.log(b.biu + b);//打印什么?
var c = { att : "hello" };
c.biu= 'world';
console.log(c.biu+ c);//打印什么般又?
二彼绷、關(guān)于函數(shù)的面試題
var a=1 , b=0 , c=0 ;
function add(n) {
n=n+1;
}
b=add(a);
alert(b);//彈出幾?
function add(n) {
n=n+3;
}
c=add(a);
alert(c);//彈出幾茴迁?
三寄悯、關(guān)于變量作用域的面試題
(function(){
a=10;
console.log(window.a)//打印什么?
var a=5;
console.log(a)//打印什么堕义?
}) ()
alert(a);
停-------再翻就看到答案了猜旬,先做出答案再看解析
四、答案解析
第一題:
答案分別打痈烀:NaN昔馋、'undefinedhello'、'world[object Object]'
- 首先JS的數(shù)據(jù)類型分為
基本類型值
和引用類型值
糖耸。- 而兩種類型的值其中有一個區(qū)別就是:
基本類型值不能擴展屬性秘遏,所以當(dāng)你對一個基本類型值
a=1
擴展:a.name="lily"
,然后獲取a.name
的時候得到的undefined。1)第一個
console.log(a.biu + a);
a.biu
是undefined嘉竟,a是數(shù)字10邦危。undefined+10=NaN2 )第二個
console.log(b.biu + b);
b.biu
是undefined,b是字符串hello
舍扰。undefined+hello
='undefinedhello'3 )第三個
console.log(c.biu+ c)
c.biu
是獲取對象的屬性倦蚪,當(dāng)然能獲取到是'world',c是對象边苹。'world'+對象='word[object object]'(按照字符串規(guī)則)
第二題:
答案是 undefined undefined
add這個函數(shù)沒有return
陵且,說明函數(shù)沒有返回值。
如果函數(shù)沒有返回值个束,那就返回undefined慕购。
b和c都是代表函數(shù)返回值,但是兩個函數(shù)都沒有返回值茬底,所以都是undefined
第三題:
答案是:undefined沪悲、5、報錯
- 其實全局作用域的方法和屬性都是window對象的方法和屬性
2)匿名函數(shù)里聲明了a阱表,但是全局并沒有聲明變量a殿如。- 第一個
window.a
,但是window對象沒有a這個屬性贡珊,**當(dāng)訪問一個對象的屬性沒有的時候,返回undefined涉馁。
4)第二個console.log(a)
是在匿名函數(shù)的作用域中门岔,作用域中已經(jīng)聲明了a,并且最后賦值5谨胞,所以打印5
5)全局沒有變量a固歪,當(dāng)直接RHS通過訪問a(而不是通過window對象訪問a屬性)的時候,找不到定義a胯努,所以直接報錯牢裳。
有什么不懂得留言喲~