最近遇到的一些前端面試題匯總

1.JavaScript的本地對(duì)象,內(nèi)置對(duì)象和宿主對(duì)象岭参?

1.本地對(duì)象

ECMA-262 把本地對(duì)象(native object)定義為“獨(dú)立于宿主環(huán)境的 ECMAScript 實(shí)現(xiàn)提供的對(duì)象”。
包含內(nèi)容:Object、Function、Array搁进、String、Boolean昔头、Number饼问、Date、RegExp揭斧、Error莱革、EvalError、RangeError讹开、ReferenceError盅视、SyntaxError、TypeError萧吠、URIError左冬。
本地對(duì)象就是 ECMA-262 定義的類(引用類型)桐筏。

2.內(nèi)置對(duì)象

ECMA-262 把內(nèi)置對(duì)象(built-in object)定義為“由 ECMAScript 實(shí)現(xiàn)提供的纸型、獨(dú)立于宿主環(huán)境的所有對(duì)象,在 ECMAScript 程序開始執(zhí)行時(shí)出現(xiàn)”梅忌。而ECMA-262 只定義了兩個(gè)內(nèi)置對(duì)象狰腌,即 Global 和 Math (它們也是本地對(duì)象,根據(jù)定義牧氮,每個(gè)內(nèi)置對(duì)象都是本地對(duì)象)琼腔。

Global(全局對(duì)象):
isNaN()、parseInt()踱葛、parseFloat()丹莲、eval()方法等光坝。
Math: 
Math.PI
Math.random() 隨機(jī)數(shù)
Math.random() 區(qū)域+起始值// 30-100整數(shù)console.log(Math.floor(Math.random()*71)+30)
Math.round() 四舍五入
Math.ceil() 進(jìn)一法
Math.floor() 去尾法
Math.max() 最大值
Math.min() 最小值
Math.sqrt() 平方
Math.pow() m的n次方
Math.sin() 對(duì)比斜,括號(hào)里面只能輸入弧度
Math.cos() 鄰比斜
Math.tan() 對(duì)比鄰
nub.toFixed(保留小位點(diǎn)后的數(shù)幾位)保留的位數(shù)之后的四舍五入

3.宿主對(duì)象

由ECMAScript實(shí)現(xiàn)的宿主環(huán)境提供的對(duì)象甥材,可以理解為:瀏覽器提供的對(duì)象盯另。所有的BOM和DOM都是宿主對(duì)象。

2.從數(shù)組[1,'a', 'd',12,56]刪除1,'a'洲赵?

let arr=[1,'a', 'd',12,56];
arr.splice(0,2);
console.log(arr);//["d", 12, 56]

console.log(0.1+0.2);
console.log('3'+4);
console.log('3'+'1');
console.log('5'-1);
console.log('3'+1);
console.log([]+{});
console.log([]==null);
console.log({} =={});
輸出什么鸳惯?原因?

console.log(0.1+0.2);  
    - 0.30000000000000004
    - 浮點(diǎn)數(shù)值
console.log('3'+4);
    - '34'
    - 隱式轉(zhuǎn)換string,toString()
console.log('3'+'1');
    - '31'
console.log('5'-1);
    - 4
    - 隱式轉(zhuǎn)換Number()
console.log('3'+1);
    - 31
    - 當(dāng)加號(hào)運(yùn)算符時(shí)叠萍,String和其他類型時(shí)芝发,其他類型都會(huì)轉(zhuǎn)為 String;其他情況苛谷,都轉(zhuǎn)化為Number類型 辅鲸, 注: undefined 轉(zhuǎn)化為Number是 為’NaN‘, 任何Number與NaN相加都為NaN抄腔。其他運(yùn)算符時(shí)瓢湃, 基本類型都轉(zhuǎn)換為 Number,String類型的帶有字符的比如: '1a' ,'a1' 轉(zhuǎn)化為 NaN 與undefined 一樣赫蛇。 
console.log([]+{});
    - "[object object]"
    - ({}).valueOf().toString()   ->   "[object Object]"
      ([])..valueOf().toString() ->  ""
      "[object Object]"+  "" -> "[object object]"
console.log([]==null)
    - false
    - [] -> ''  ''!==null ''!==undefined
console.log({} =={});
    - false 
    - 對(duì)象存在堆區(qū)绵患,在棧區(qū)存著兩個(gè)對(duì)象的不同的指針,兩個(gè)指針不同

關(guān)于隱式轉(zhuǎn)換點(diǎn)擊具體查看文章
還有隱式轉(zhuǎn)換更多問題詳解

4.垃圾回收機(jī)制悟耘,管理內(nèi)存落蝙,如何優(yōu)化?
答案參考我另一篇文章

5.比較typeof和instanceof區(qū)別暂幼?

1.typeof能夠檢測(cè)出了null之外的基礎(chǔ)類型(String筏勒、Number、Boolean旺嬉、Undefined)管行。
對(duì)于引用類型能判斷出function、其他的都為Object邪媳。

2.instanceof是用來判斷 A 是否為 B 的實(shí)例捐顷。
表達(dá)式為:A instanceof B,如果 A 是 B 的實(shí)例雨效,則返回 true,否則返回 false迅涮。
在這里需要特別注意的是:instanceof 檢測(cè)的是原型。 
 instanceof 只能用來判斷兩個(gè)對(duì)象是否屬于實(shí)例關(guān)系徽龟, 而不能判斷一個(gè)對(duì)象實(shí)例具體屬于哪種類型叮姑。之后增加了Array.isArray()方法判斷這個(gè)值是不是數(shù)組的。
如[1,2] instanceof Array

function fun(n,o) {
console.log(o)
return {
fun:function(m){
return fun(m,n);
}
};
}
var a = fun(0); a.fun(1); a.fun(2); a.fun(3);//undefined,?,?,?
var b = fun(0).fun(1).fun(2).fun(3);//undefined,?,?,?
var c = fun(0).fun(1); c.fun(2); c.fun(3);//undefined,?,?,?
//問:三行a,b,c的輸出分別是什么据悔?
6,7,8題的具體答案點(diǎn)擊分析查看文章

a: undefined,0,0,0
b: undefined,0,1,2
c: undefined,0,1,1

var o={
fn:function (){
console.log(fn);
}
};
o.fn();

ERROR報(bào)錯(cuò)

8.var fn=function (){
console.log(fn);
};
fn();

function (){console.log(fn);};正確
使用var或是非對(duì)象內(nèi)部的函數(shù)表達(dá)式內(nèi)传透,可以訪問到存放當(dāng)前函數(shù)的變量耘沼;在對(duì)象內(nèi)部的不能訪問到。

因?yàn)楹瘮?shù)作用域鏈的問題朱盐,采用var的是在外部創(chuàng)建了一個(gè)fn變量耕拷,函數(shù)內(nèi)部當(dāng)然可以在內(nèi)部尋找不到fn后向上冊(cè)作用域查找fn;
而在創(chuàng)建對(duì)象內(nèi)部時(shí),因?yàn)闆]有在函數(shù)作用域內(nèi)創(chuàng)建fn托享,所以無法訪問骚烧。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市闰围,隨后出現(xiàn)的幾起案子赃绊,更是在濱河造成了極大的恐慌,老刑警劉巖羡榴,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碧查,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡校仑,警方通過查閱死者的電腦和手機(jī)忠售,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迄沫,“玉大人稻扬,你說我怎么就攤上這事⊙虼瘢” “怎么了泰佳?”我有些...
    開封第一講書人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)尘吗。 經(jīng)常有香客問我逝她,道長(zhǎng),這世上最難降的妖魔是什么睬捶? 我笑而不...
    開封第一講書人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任黔宛,我火速辦了婚禮,結(jié)果婚禮上擒贸,老公的妹妹穿的比我還像新娘臀晃。我一直安慰自己,他們只是感情好酗宋,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開白布积仗。 她就那樣靜靜地躺著疆拘,像睡著了一般蜕猫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哎迄,一...
    開封第一講書人閱讀 52,584評(píng)論 1 312
  • 那天回右,我揣著相機(jī)與錄音隆圆,去河邊找鬼。 笑死翔烁,一個(gè)胖子當(dāng)著我的面吹牛渺氧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蹬屹,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼侣背,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了慨默?” 一聲冷哼從身側(cè)響起贩耐,我...
    開封第一講書人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎厦取,沒想到半個(gè)月后潮太,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡虾攻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年铡买,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霎箍。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奇钞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漂坏,到底是詐尸還是另有隱情蛇券,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布樊拓,位于F島的核電站纠亚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏筋夏。R本人自食惡果不足惜蒂胞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望条篷。 院中可真熱鬧骗随,春花似錦、人聲如沸赴叹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)乞巧。三九已至涨椒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蚕冬。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工免猾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人囤热。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓猎提,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親旁蔼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锨苏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容