web前端面試題-JavaScript篇(持續(xù)更新...)

1磕道,介紹js的基本數(shù)據(jù)類型。

Undefined行冰、Null溺蕉、Boolean、Number悼做、String

2疯特,介紹js有哪些內(nèi)置對(duì)象?

Object 是 JavaScript 中所有對(duì)象的父對(duì)象

數(shù)據(jù)封裝類對(duì)象:Object肛走、Array漓雅、Boolean、Number 和 String

其他對(duì)象:Function朽色、Arguments邻吞、Math、Date葫男、RegExp抱冷、Error

3,說幾條寫JavaScript的基本規(guī)范梢褐?旺遮,

1.不要在同一行聲明多個(gè)變量赵讯。

2.請(qǐng)使用 ===/!==來比較true/false或者數(shù)值

3.使用對(duì)象字面量替代new Array這種形式

4.不要使用全局函數(shù)。

5.Switch語句必須帶有default分支

6.函數(shù)不應(yīng)該有時(shí)候有返回值耿眉,有時(shí)候沒有返回值边翼。

7.For循環(huán)必須使用大括號(hào)

8.If語句必須使用大括號(hào)

9.for-in循環(huán)中的變量 應(yīng)該使用var關(guān)鍵字明確限定作用域,從而避免作用域污染鸣剪。

4组底,JavaScript原型,原型鏈 ? 有什么特點(diǎn)西傀?

每個(gè)對(duì)象都會(huì)在其內(nèi)部初始化一個(gè)屬性斤寇,就是prototype(原型)桶癣,當(dāng)我們?cè)L問一個(gè)對(duì)象的屬性時(shí)拥褂,

如果這個(gè)對(duì)象內(nèi)部不存在這個(gè)屬性,那么他就會(huì)去prototype里找這個(gè)屬性牙寞,這個(gè)prototype又會(huì)有自己的prototype饺鹃,

于是就這樣一直找下去,也就是我們平時(shí)所說的原型鏈的概念间雀。

關(guān)系:instance.constructor.prototype = instance.__proto__

特點(diǎn):

JavaScript對(duì)象是通過引用來傳遞的悔详,我們創(chuàng)建的每個(gè)新對(duì)象實(shí)體中并沒有一份屬于自己的原型副本。當(dāng)我們修改原型時(shí)惹挟,與之相關(guān)的對(duì)象也會(huì)繼承這一改變茄螃。

當(dāng)我們需要一個(gè)屬性的時(shí),Javascript引擎會(huì)先看當(dāng)前對(duì)象中是否有這個(gè)屬性连锯, 如果沒有的話归苍,

就會(huì)查找他的Prototype對(duì)象是否有這個(gè)屬性,如此遞推下去运怖,一直檢索到 Object 內(nèi)建對(duì)象拼弃。

function Func(){}

Func.prototype.name = "Sean";

Func.prototype.getInfo = function() {? ? ? return this.name;}

var person = new Func();

//現(xiàn)在可以參考

var person = Object.create(oldObject);

console.log(person.getInfo());

//它擁有了Func的屬性和方法//"Sean"console.log(Func.prototype);

// Func { name="Sean", getInfo=function()}

5,JavaScript有幾種類型的值摇展?吻氧,你能畫一下他們的內(nèi)存圖嗎?

棧:原始數(shù)據(jù)類型(Undefined咏连,Null盯孙,Boolean,Number祟滴、String)

堆:引用數(shù)據(jù)類型(對(duì)象振惰、數(shù)組和函數(shù))

兩種類型的區(qū)別是:存儲(chǔ)位置不同;

原始數(shù)據(jù)類型直接存儲(chǔ)在棧(stack)中的簡(jiǎn)單數(shù)據(jù)段踱启,占據(jù)空間小报账、大小固定研底,屬于被頻繁使用數(shù)據(jù),所以放入棧中存儲(chǔ)透罢;

引用數(shù)據(jù)類型存儲(chǔ)在堆(heap)中的對(duì)象,占據(jù)空間大榜晦、大小不固定,如果存儲(chǔ)在棧中,將會(huì)影響程序運(yùn)行的性能羽圃;引用數(shù)據(jù)類型在棧中存儲(chǔ)了指針乾胶,該指針指向堆中該實(shí)體的起始地址。當(dāng)解釋器尋找引用值時(shí)朽寞,會(huì)首先檢索其

在棧中的地址识窿,取得地址后從堆中獲得實(shí)體

6,Javascript如何實(shí)現(xiàn)繼承脑融?

1喻频、構(gòu)造繼承

2、原型繼承

3肘迎、實(shí)例繼承

4甥温、拷貝繼承

原型prototype機(jī)制或apply和call方法去實(shí)現(xiàn)較簡(jiǎn)單,建議使用構(gòu)造函數(shù)與原型混合方式妓布。

? function Parent(){? this.name = 'wang';? }? function Child(){? this.age = 28;? }? Child.prototype = new Parent();//繼承了Parent姻蚓,通過原型? var demo = new Child();? alert(demo.age);? alert(demo.name);//得到被繼承的屬性

7,Javascript作用鏈域?

作用域鏈的作用是保證執(zhí)行環(huán)境里有權(quán)訪問的變量和函數(shù)是有序的匣沼,作用域鏈的變量只能向上訪問狰挡,變量訪問到window對(duì)象即被終止,作用域鏈向下訪問變量是不被允許的释涛。

8加叁,談?wù)凾his對(duì)象的理解。

this總是指向函數(shù)的直接調(diào)用者(而非間接調(diào)用者)枢贿;

如果有new關(guān)鍵字殉农,this指向new出來的那個(gè)對(duì)象;

在事件中局荚,this指向觸發(fā)這個(gè)事件的對(duì)象超凳,特殊的是,IE中的attachEvent中的this總是指向全局對(duì)象Window耀态;

this就是指的是當(dāng)前對(duì)象

9轮傍,null,undefined 的區(qū)別首装?

null 表示一個(gè)對(duì)象被定義了创夜,值為“空值”;

undefined 表示不存在這個(gè)值仙逻。

typeof undefined //"undefined"

undefined :是一個(gè)表示"無"的原始值或者說表示"缺少值"驰吓,就是此處應(yīng)該有一個(gè)值涧尿,但是還沒有定義。當(dāng)嘗試讀取時(shí)會(huì)返回 undefined檬贰;

例如變量被聲明了姑廉,但沒有賦值時(shí),就等于undefined

typeof null //"object"

null : 是一個(gè)對(duì)象(空對(duì)象, 沒有任何屬性和方法)翁涤;

例如作為函數(shù)的參數(shù)桥言,表示該函數(shù)的參數(shù)不是對(duì)象;

注意:

在驗(yàn)證null時(shí)葵礼,一定要使用 === 号阿,因?yàn)?== 無法分別 null 和 undefined

undefined表示"缺少值",就是此處應(yīng)該有一個(gè)值鸳粉,但是還沒有定義扔涧。典型用法是:

(1)變量被聲明了,但沒有賦值時(shí)赁严,就等于undefined扰柠。

(2) 調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒有提供疼约,該參數(shù)等于undefined。

(3)對(duì)象沒有賦值的屬性蝙泼,該屬性的值為undefined程剥。

(4)函數(shù)沒有返回值時(shí),默認(rèn)返回undefined汤踏。

null表示"沒有對(duì)象"织鲸,即該處不應(yīng)該有值。典型用法是:

?(1) 作為函數(shù)的參數(shù)溪胶,表示該函數(shù)的參數(shù)不是對(duì)象搂擦。

?(2) 作為對(duì)象原型鏈的終點(diǎn)。

10哗脖,["1", "2", "3"].map(parseInt) 答案是多少瀑踢?

[1, NaN, NaN] 因?yàn)?parseInt 需要兩個(gè)參數(shù) (val, radix),

其中 radix 表示解析時(shí)用的基數(shù)才避。

map 傳了 3 個(gè) (element, index, array)橱夭,對(duì)應(yīng)的 radix 不合法導(dǎo)致解析失敗。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末桑逝,一起剝皮案震驚了整個(gè)濱河市棘劣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌楞遏,老刑警劉巖茬暇,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件首昔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡糙俗,警方通過查閱死者的電腦和手機(jī)沙廉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來臼节,“玉大人撬陵,你說我怎么就攤上這事⊥欤” “怎么了巨税?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)粉臊。 經(jīng)常有香客問我草添,道長(zhǎng),這世上最難降的妖魔是什么扼仲? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任远寸,我火速辦了婚禮,結(jié)果婚禮上屠凶,老公的妹妹穿的比我還像新娘驰后。我一直安慰自己,他們只是感情好矗愧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布灶芝。 她就那樣靜靜地躺著,像睡著了一般唉韭。 火紅的嫁衣襯著肌膚如雪夜涕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天属愤,我揣著相機(jī)與錄音女器,去河邊找鬼。 笑死住诸,一個(gè)胖子當(dāng)著我的面吹牛驾胆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播只壳,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼俏拱,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了吼句?” 一聲冷哼從身側(cè)響起锅必,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后搞隐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驹愚,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年劣纲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逢捺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡癞季,死狀恐怖劫瞳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情绷柒,我是刑警寧澤志于,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站废睦,受9級(jí)特大地震影響伺绽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嗜湃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一奈应、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧购披,春花似錦杖挣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至橘荠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間郎逃,已是汗流浹背哥童。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留褒翰,地道東北人贮懈。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像优训,于是被迫代替她去往敵國(guó)和親朵你。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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

  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡(jiǎn)單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,130評(píng)論 0 21
  • JavaScript語言精粹 前言 約定:=> 表示參考相關(guān)文章或書籍; JS是JavaScript的縮寫揣非。 本書...
    微笑的AK47閱讀 583評(píng)論 0 3
  • 前端開發(fā)面試題 面試題目: 根據(jù)你的等級(jí)和職位的變化抡医,入門級(jí)到專家級(jí),廣度和深度都會(huì)有所增加。 題目類型: 理論知...
    怡寶丶閱讀 2,588評(píng)論 0 7
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,223評(píng)論 0 3
  • 函數(shù)和對(duì)象 1忌傻、函數(shù) 1.1 函數(shù)概述 函數(shù)對(duì)于任何一門語言來說都是核心的概念大脉。通過函數(shù)可以封裝任意多條語句,而且...
    道無虛閱讀 4,581評(píng)論 0 5