亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

四月份面試題匯總(一)

高勝山 / 2293人閱讀

摘要:即構(gòu)造器的原型對(duì)象即構(gòu)造器的原型對(duì)象和的關(guān)系是每個(gè)對(duì)象都有的一個(gè)屬性,而是函數(shù)才會(huì)有的屬性。不可以使用對(duì)象,不存在,可以使用代替。在開(kāi)發(fā)過(guò)程中,需要保證某個(gè)元素的在其同級(jí)元素中具有唯一性。

1.理解原型、原型鏈?

每創(chuàng)建一個(gè)函數(shù),函數(shù)上都有一個(gè)prototype的屬性,他是一個(gè)對(duì)象。這個(gè)對(duì)象的作用就是當(dāng)使用它創(chuàng)建實(shí)例的時(shí)候,這些實(shí)例都會(huì)共享原型上的屬性和方法。
當(dāng)我們?cè)L問(wèn)對(duì)象中的某個(gè)屬性時(shí),如果這個(gè)對(duì)象內(nèi)部不存在這個(gè)屬性,那么他就會(huì)去__proto__里面去找這個(gè)屬性,這個(gè)__proto__又會(huì)有自己的__proto__,
就這么一直找下去直到最后一個(gè)__proto__值為null。

var A = function(){};
var a = new A();
console.log(a.__proto__); //A {}(即構(gòu)造器function A 的原型對(duì)象)
console.log(a.__proto__.__proto__); //Object {}(即構(gòu)造器function Object 的原型對(duì)象)
console.log(a.__proto__.__proto__.__proto__); //null

2. __proto__和prototype的關(guān)系?

__proto__是每個(gè)對(duì)象都有的一個(gè)屬性,而prototype是函數(shù)才會(huì)有的屬性。

舉例:var p = new Person();
其中p.__proto__ == Person.prototype。

3. 如何鑒別屬性是自有屬性還是原型屬性?

hasOwnProperty()方法返回true即為自有屬性,返回false有兩種可能

1.為原型屬性;

2.跟本不存在該屬性

所以判斷是否是原型屬性,要先用in判斷該對(duì)象中是否存在此屬性:

function hasPrototypeProperty(obj, name){
        return name in obj && !obj.hasOwnProperty(name);
    }

4.如何判斷某個(gè)對(duì)象是否是另一個(gè)對(duì)象的原型對(duì)象?

isPrototypeOf();
例:function Cat(name,color){}
var cat1 = new Cat();
alert(Cat.prototype.isPrototypeOf(cat1)); //true

5. ES6箭頭函數(shù)注意點(diǎn) ?

1.函數(shù)體內(nèi)的this,是定義時(shí)所在的對(duì)象,而不是使用時(shí)所在的對(duì)象,始終指向自身外的第一個(gè)this。

2.不可以做構(gòu)造函數(shù),也就是說(shuō)不可以使用 new 命令,否則會(huì)拋錯(cuò)。

3.不可以使用arguments對(duì)象,不存在,可以使用Rest代替。

使用Rest:
    var foo=(...arguments)=> {console.log(arguments);
}

6. 讓你開(kāi)始一個(gè)項(xiàng)目,你會(huì)選擇用 vue 還是 React?

1如果你喜歡用模板搭建應(yīng)用,請(qǐng)使用 vue。

2如果你的應(yīng)用需要盡可能小和快,請(qǐng)使用 vue。

3如果你計(jì)劃構(gòu)建一個(gè)大學(xué)型應(yīng)用,請(qǐng)使用 React。

4如果你想要同時(shí)適用于Web端和原生App的框架,請(qǐng)使用 React。

5如果你想要更大的生態(tài)圈(論壇等),請(qǐng)使用 React。

7. React創(chuàng)建組件的三種方式及其區(qū)別 ?

1.函數(shù)式定義(無(wú)狀態(tài)組件):function 組件名(props,/context/){}

2.ES5之var 組件名= React.creatClass({})

3.ES6之class 組件名 extends React.Components{}

8. React 中 keys 的作用是什么 ?

keys 是用于追蹤哪些元素被修改、被添加、被刪除的輔助標(biāo)識(shí)。在開(kāi)發(fā)過(guò)程中,需要保證某個(gè)元素的 key 在其同級(jí)元素中具有唯一性。

9. 為什么接下來(lái)這段代碼不是 IIFE(立即調(diào)用的函數(shù)表達(dá)式)?

function foo(){ }();

以function關(guān)鍵字開(kāi)頭的語(yǔ)句會(huì)被解析為函數(shù)聲明,而函數(shù)聲明是不允許直接運(yùn)行的。
只有當(dāng)解析器把這句話解析為函數(shù)表達(dá)式,才能夠直接運(yùn)行,

    解決1.
    (function foo(){
            // code..
    })()
    解決2.
    var foo =  function(){};
    foo();

10. js中如何判斷null和undefined ?

    if(typeof(a)=="undefined"){
        console.log("undefined")
    }
    if(typeof(a)!="undefined"&&a!=0&&!a){
        console.log("null")
    }

11. 實(shí)現(xiàn)一個(gè)數(shù)組亂序排列 ?

    var a = [1, 2, 3, 5, 4];
    function fn(a, b) {
        return Math.Random() - 0.5
    }
    a.sort(fn);//[5,1,2,4,3]
    
    
    var a = [1, 2, 3, 5, 4];
    function fn(a, b) {
        return a - b
    }
    a.sort(fn);//[1, 2, 3, 4, 5]
    
    
    var a = [1, 2, 3, 5, 4];
    function fn(a, b) {
        return b - a
    }
    a.sort(fn);//[5, 4, 3, 2, 1]

js如何區(qū)分?jǐn)?shù)組還是對(duì)象 ? (代表:實(shí)現(xiàn)深拷貝函數(shù))

第一種:Object.prototype.toString.call(a).slice(8,-1) == "Array" ? [] : {}

    var a = {};

    Object.prototype.toString.call(a);//"[object Object]"

    var a = [];

    Object.prototype.toString.call(a);//"[object Array]"

第二種:

    var a=[];
    var b={};
    typeof a === "object" && !isNaN(a.length)//true
    typeof b === "object" && !isNaN(b.length)//false

第三種:

    var a=[];
    var b={};
    Array.isArray(a);//true
    Array.isArray(b)//false

實(shí)現(xiàn)一個(gè)深拷貝函數(shù):

function clone(obj) {
    if(typeof(obj)=="object"&&obj){//&&obj是排除obj=null
        //區(qū)分是數(shù)組還是對(duì)象,建立空數(shù)組或空對(duì)象
        var o = Array.isArray(obj) ? [] : {};
        for(var k in obj) {
            if(typeof(obj[k])=="object"){
                o[k] = clone(obj[k]);
            }else{
                o[k] = obj[k];
            }
        }
    }else{
        return obj;
    }
    return o;
}

...

微信公眾號(hào):前端實(shí)習(xí)日記

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/94675.html

相關(guān)文章

  • Android-Java面試

    摘要:好不容易在月號(hào)這天中午點(diǎn)左右接到了來(lái)自阿里的面試電話。這里會(huì)不斷收集和更新基礎(chǔ)相關(guān)的面試題,目前已收集題。面試重難點(diǎn)的和的打包過(guò)程多線程機(jī)制機(jī)制系統(tǒng)啟動(dòng)過(guò)程,啟動(dòng)過(guò)程等等掃清面試障礙最新面試經(jīng)驗(yàn)分享,此為第一篇,開(kāi)篇。 2016 年末,騰訊,百度,華為,搜狗和滴滴面試題匯總 2016 年未,騰訊,百度,華為,搜狗和滴滴面試題匯總 各大公司 Java 后端開(kāi)發(fā)面試題總結(jié) 各大公司 Jav...

    TalkingData 評(píng)論0 收藏0
  • 你不知道的h5

    摘要:目前,常用的模塊規(guī)范主要有兩種和。攔截全局請(qǐng)求一直接引入腳本攔截需要的回調(diào)或函數(shù)。深刻知道一個(gè)良好的命名規(guī)范的重要性,同時(shí)在項(xiàng)目中也會(huì)遇到一些命名的瓶頸。 基于 Three.js 的超快的 3D 開(kāi)發(fā)框架:Whitestorm.js Whitestorm.js 是一款基于 Three.js 超快的 Web 應(yīng)用 3D 開(kāi)發(fā)框架。它為普通的 Three.js 任務(wù)提供封裝、使搭建環(huán)境、...

    IntMain 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<