午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    javascript基本類型詳解
    來源:易賢網(wǎng) 閱讀:690 次 日期:2014-12-01 10:59:54
    溫馨提示:易賢網(wǎng)小編為您整理了“javascript基本類型詳解”,方便廣大網(wǎng)友查閱!

    js中一共5個原始值,6個typeof能判斷的,9個原生的內(nèi)置的構(gòu)造函數(shù)。

    這569,構(gòu)成了js語言的基礎(chǔ)。

    5個原始值是:數(shù)字,字符,布爾,null,undefined

    typeof能判斷:數(shù)字,字符,布爾,object,function,undefined。 注意null和數(shù)組,tyopeof都輸出object。

    typeof不能區(qū)分出數(shù)組和對象,如何判斷類型呢?使用Object.prototype.toString.apply()。

    if(value&&typeof value ==='object'&&value.constructor === Array)

    上面的檢測如果在不同幀和窗口創(chuàng)建的數(shù)組,會給出false,window對象不一樣了.

    可靠的方法是if(Object.prototype.toString.apply(value)==="[object Array]")

    arguments 數(shù)組不是一個數(shù)組,他只是一個有著length成員屬性的對象。

    如下面例子所示 arguments不是普通的array

    代碼如下:

    var a = function (){

    var b = Object.prototype.toString.apply(arguments);

    console.log(b);

    }

    a();//輸出[object Arguments]

    代碼如下:

    var a = function (){

    var c = [];

    var b = Object.prototype.toString.apply(c);

    console.log(b);

    }

    a();//輸出[object Array]

    instanceof是如何判斷是否實例

    prototype里面的屬性有constructor.

    默認的prototype屬性是一個object對象,可以設(shè)置為任何復(fù)雜值,忽略設(shè)置為原始值.

    雖然他盡是一個對象,但他是特殊性的,圓形鏈將每個實例都鏈接至其構(gòu)造函數(shù)的prototype屬性。實例與構(gòu)造函數(shù)的 prototype屬性之間有一個隱蔽的鏈接,這就是實例的__proto__。同時實例的constructor屬性是通過構(gòu)造函數(shù)prototype的constructor拿到的。

    但是要保留constructor,這樣可以讓new的實例有constructor的屬性,也可以使用instanceof來判斷。

    代碼如下:

    var Foo = function(){}

    Foo.prototype={constructor:Foo}

    var FooInstance = new Foo;

    FooInstance.__proto__=== Foo.prototype;//true

    FooInstance.constructor === Foo; //true

    實際上instanceof判斷不是依據(jù)constructor,而是依據(jù)原型鏈判斷,如下面例子

    代碼如下:

    var Foo = function(){};

    Foo.prototype={};

    var FooInstance = {};

    FooInstance.__proto__=Foo.prototype;

    console.log(FooInstance instanceof Foo);//true

    使用原始值,不使用構(gòu)造函數(shù)

    哪些值算是false:false,"",null,0,-0,NaN,undefined,這些算是false其他都是true

    但是請注意下面這個例子

    代碼如下:

    var a = Boolean(false);

    var b = new Boolean("");

    if (a ){console.log(a);}//無法輸出

    if (b ){console.log(b);}//Boolean {[[PrimitiveValue]]: false} new 一個相當(dāng)于一個對象了,就不是false

    上面的文章理論性稍強了一些,不過這些都是構(gòu)成javascript語言的基礎(chǔ),一定要了解清楚才行。

    更多信息請查看IT技術(shù)專欄

    更多信息請查看腳本欄目
    易賢網(wǎng)手機網(wǎng)站地址:javascript基本類型詳解
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>

    2025國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)