欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript標(biāo)準(zhǔn)對象_動力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年06月27日 10:33:33   作者:liaoxuefeng  
這篇文章主要為大家詳細(xì)介紹了JavaScript標(biāo)準(zhǔn)對象的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在JavaScript的世界里,一切都是對象。

但是某些對象還是和其他對象不太一樣。為了區(qū)分對象的類型,我們用typeof操作符獲取對象的類型,它總是返回一個(gè)字符串:

typeof 123; // 'number'
typeof NaN; // 'number'
typeof 'str'; // 'string'
typeof true; // 'boolean'
typeof undefined; // 'undefined'
typeof Math.abs; // 'function'
typeof null; // 'object'
typeof []; // 'object'
typeof {}; // 'object'

可見,number、string、boolean、functionundefined有別于其他類型。特別注意null的類型是object,Array的類型也是object,如果我們用typeof將無法區(qū)分出null、Array和通常意義上的object——{}。

包裝對象

除了這些類型外,JavaScript還提供了包裝對象,熟悉Java的小伙伴肯定很清楚int和Integer這種曖昧關(guān)系。
number、boolean和string都有包裝對象。沒錯(cuò),在JavaScript中,字符串也區(qū)分string類型和它的包裝類型。包裝對象用new創(chuàng)建:

var n = new Number(123); // 123,生成了新的包裝類型
var b = new Boolean(true); // true,生成了新的包裝類型
var s = new String('str'); // 'str',生成了新的包裝類型

雖然包裝對象看上去和原來的值一模一樣,顯示出來也是一模一樣,但他們的類型已經(jīng)變?yōu)閛bject了!所以,包裝對象和原始值用===比較會返回false:

typeof new Number(123); // 'object'
new Number(123) === 123; // false

typeof new Boolean(true); // 'object'
new Boolean(true) === true; // false

typeof new String('str'); // 'object'
new String('str') === 'str'; // false

所以閑的蛋疼也不要使用包裝對象!尤其是針對string類型?。?!
如果我們在使用Number、BooleanString時(shí),沒有寫new會發(fā)生什么情況?
此時(shí),Number()、BooleanString()被當(dāng)做普通函數(shù),把任何類型的數(shù)據(jù)轉(zhuǎn)換為number、booleanstring類型(注意不是其包裝類型):

var n = Number('123'); // 123,相當(dāng)于parseInt()或parseFloat()
typeof n; // 'number'

var b = Boolean('true'); // true
typeof b; // 'boolean'

var b2 = Boolean('false'); // true! 'false'字符串轉(zhuǎn)換結(jié)果為true!因?yàn)樗欠强兆址?
var b3 = Boolean(''); // false

var s = String(123.45); // '123.45'
typeof s; // 'string'

是不是感覺頭大了?這就是JavaScript特有的催眠魅力!

總結(jié)一下,有這么幾條規(guī)則需要遵守:

  • 不要使用new Number()、new Boolean()、new String()創(chuàng)建包裝對象;
  • 用parseInt()parseFloat()來轉(zhuǎn)換任意類型到number
  • 用String()來轉(zhuǎn)換任意類型到string,或者直接調(diào)用某個(gè)對象的toString()方法;
  • 通常不必把任意類型轉(zhuǎn)換為boolean再判斷,因?yàn)榭梢灾苯?strong>寫if (myVar) {...};
  • typeof操作符可以判斷出number、boolean、string、function和undefined
  • 判斷Array要使用Array.isArray(arr);
  • 判斷null請使用myVar === null
  • 判斷某個(gè)全局變量是否存在用typeof window.myVar === 'undefined';
  • 函數(shù)內(nèi)部判斷某個(gè)變量是否存在用typeof myVar === 'undefined'。

最后有細(xì)心的同學(xué)指出,任何對象都有toString()方法嗎?nullundefined就沒有!確實(shí)如此,這兩個(gè)特殊值要除外,雖然null還偽裝成了object類型。

更細(xì)心的同學(xué)指出,number對象調(diào)用toString()報(bào)SyntaxError:

123.toString(); // SyntaxError

遇到這種情況,要特殊處理一下:

123..toString(); // '123', 注意是兩個(gè)點(diǎn)!
(123).toString(); // '123'

不要問為什么,這就是JavaScript代碼的樂趣!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • 整理Javascript函數(shù)學(xué)習(xí)筆記

    整理Javascript函數(shù)學(xué)習(xí)筆記

    整理Javascript函數(shù)學(xué)習(xí)筆記,之前一系列的文章是跟我學(xué)習(xí)Javascript,本文就是進(jìn)一步學(xué)習(xí)Javascript函數(shù),希望大家繼續(xù)關(guān)注
    2015-12-12
  • ymPrompt的doHandler方法來實(shí)現(xiàn)獲取子窗口返回值的方法

    ymPrompt的doHandler方法來實(shí)現(xiàn)獲取子窗口返回值的方法

    今天在寫頁面時(shí)用到了ymPrompt的win方法來彈出一個(gè)窗口。由于要用到獲取子窗口返回來的值判斷是否刷新父窗口,在ymPrompt的組件Demo中一直沒有找到合適的方法實(shí)現(xiàn)
    2010-06-06
  • javaScript 頁面自動加載事件詳解

    javaScript 頁面自動加載事件詳解

    本篇文章主要是對javaScript頁面自動加載事件進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • js通過window.open(url)下載文件并修改文件名

    js通過window.open(url)下載文件并修改文件名

    這篇文章主要給大家介紹了關(guān)于js如何通過window.open(url)下載文件并修改文件名的相關(guān)資料,我們知道下載文件是一個(gè)非常常見的需求,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • 一文詳解JavaScript中的URL編碼和解碼

    一文詳解JavaScript中的URL編碼和解碼

    在本文中,我們將探討在 JavaScript 中處理 URL 的現(xiàn)代技術(shù),并回答與在 JavaScript 中編碼和解碼 URL 相關(guān)的問題,文中通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-03-03
  • JavaScript實(shí)現(xiàn)DIV層拖動及動態(tài)增加新層的方法

    JavaScript實(shí)現(xiàn)DIV層拖動及動態(tài)增加新層的方法

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)DIV層拖動及動態(tài)增加新層的方法,設(shè)計(jì)javascript操作div層的拖動與增加的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • js通過元素class名字獲取元素集合的具體實(shí)現(xiàn)

    js通過元素class名字獲取元素集合的具體實(shí)現(xiàn)

    獲取元素集合的方法有很多,接下來為大家介紹喜愛使用js通過元素class名字獲取元素集合的方法
    2014-01-01
  • 原生javascript制作的拼圖游戲?qū)崿F(xiàn)方法詳解

    原生javascript制作的拼圖游戲?qū)崿F(xiàn)方法詳解

    這篇文章主要介紹了原生javascript制作的拼圖游戲?qū)崿F(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript制作拼圖游戲的相關(guān)步驟、原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • JS實(shí)現(xiàn)電商商品展示放大鏡特效

    JS實(shí)現(xiàn)電商商品展示放大鏡特效

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)電商商品展示放大鏡特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • 微信小程序tabBar設(shè)置實(shí)例解析

    微信小程序tabBar設(shè)置實(shí)例解析

    這篇文章主要介紹了微信小程序tabBar設(shè)置實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11

最新評論