亚洲有薄码区久久影视,国产传媒视频免费观看,精品av自在线偷拍,日日夜夜爽爽,中文一级aV,色悠久久久久久,高潮久久久久久久久久,亚洲国产91,亚洲黄色av黄小色网

前端程序員JavaScript面試題(3)

時(shí)間:2024-07-21 13:03:50 學(xué)人智庫

前端程序員JavaScript面試題(3)

  第六問

前端程序員JavaScript面試題(3)

  第六問 new Foo().getName() ,首先看運(yùn)算符優(yōu)先級(jí)括號(hào)高于new,實(shí)際執(zhí)行為

  (new Foo()).getName()

  遂先執(zhí)行Foo函數(shù),而Foo此時(shí)作為構(gòu)造函數(shù)卻有返回值,所以這里需要說明下js中的構(gòu)造函數(shù)返回值問題。

  構(gòu)造函數(shù)的返回值

  在傳統(tǒng)語言中,構(gòu)造函數(shù)不應(yīng)該有返回值,實(shí)際執(zhí)行的返回值就是此構(gòu)造函數(shù)的實(shí)例化對(duì)象。

  而在js中構(gòu)造函數(shù)可以有返回值也可以沒有。

  1、沒有返回值則按照其他語言一樣返回實(shí)例化對(duì)象。

  image_thumb1

  2、若有返回值則檢查其返回值是否為引用類型。如果是非引用類型,如基本類型(string,number,boolean,null,undefined)則與無返回值相同,實(shí)際返回其實(shí)例化對(duì)象。

  image_thumb2

  3、若返回值是引用類型,則實(shí)際返回值為這個(gè)引用類型。

  image_thumb3

  原題中,返回的是this,而this在構(gòu)造函數(shù)中本來就代表當(dāng)前實(shí)例化對(duì)象,遂最終Foo函數(shù)返回實(shí)例化對(duì)象。

  之后調(diào)用實(shí)例化對(duì)象的getName函數(shù),因?yàn)樵贔oo構(gòu)造函數(shù)中沒有為實(shí)例化對(duì)象添加任何屬性,遂到當(dāng)前對(duì)象的原型對(duì)象(prototype)中尋找getName,找到了。

  遂最終輸出3。

  第七問

  第七問, new new Foo().getName(); 同樣是運(yùn)算符優(yōu)先級(jí)問題。

  最終實(shí)際執(zhí)行為:

  new ((new Foo()).getName)();

  先初始化Foo的實(shí)例化對(duì)象,然后將其原型上的getName函數(shù)作為構(gòu)造函數(shù)再次new。

  遂最終結(jié)果為3

  最后

  就答題情況而言,第一問100%都可以回答正確,第二問大概只有50%正確率,第三問能回答正確的就不多了,第四問再正確就非常非常少了。其實(shí)此題并沒有太多刁鉆匪夷所思的用法,都是一些可能會(huì)遇到的場景,而大多數(shù)人但凡有1年到2年的工作經(jīng)驗(yàn)都應(yīng)該完全正確才對(duì)。

  只能說有一些人太急躁太輕視了,希望大家通過此文了解js一些特性。

【前端程序員JavaScript面試題(3)】相關(guān)文章:

前端工程師面試題10-20

Web前端面試題目及答案06-30

Microsoft面試題09-04

iOS面試題07-10

公司面試題09-12

hibernate面試題10-18

英語面試題精選06-13

小升初面試題06-10

PHP面試題10-14

小升初面試題型08-24

吉林省| 炉霍县| 奉贤区| 新津县| 呼伦贝尔市| 秀山| 襄樊市| 汉中市| 三亚市| 青浦区| 高雄市| 南溪县| 霍邱县| 湟源县| 莱芜市| 大化| 修武县| 林口县| 台江县| 绥化市| 曲靖市| 白城市| 新源县| 微山县| 隆尧县| 大庆市| 曲靖市| 苏尼特左旗| 汕头市| 拜城县| 五河县| 怀化市| 蒲城县| 杨浦区| 武平县| 稻城县| 拜城县| 乌拉特中旗| 石家庄市| 诏安县| 修武县|