最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

在JavaScript的世界里,一切都是對(duì)象。

但是某些對(duì)象還是和其他對(duì)象不太一樣。為了區(qū)分對(duì)象的類型,我們用typeof操作符獲取對(duì)象的類型,它總是返回一個(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'

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

包裝對(duì)象

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

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

雖然包裝對(duì)象看上去和原來(lái)的值一模一樣,顯示出來(lái)也是一模一樣,但他們的類型已經(jīng)變?yōu)閛bject了!所以,包裝對(duì)象和原始值用===比較會(huì)返回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

所以閑的蛋疼也不要使用包裝對(duì)象!尤其是針對(duì)string類型!??!
如果我們?cè)谑褂?span style="color: #800000">Number、BooleanString時(shí),沒(méi)有寫(xiě)new會(huì)發(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'

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

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

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

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

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

123.toString(); // SyntaxError

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

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

不要問(wèn)為什么,這就是JavaScript代碼的樂(lè)趣!

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

相關(guān)文章

  • javascript實(shí)現(xiàn)dom動(dòng)態(tài)創(chuàng)建省市縱向列表菜單的方法

    javascript實(shí)現(xiàn)dom動(dòng)態(tài)創(chuàng)建省市縱向列表菜單的方法

    這篇文章主要介紹了javascript實(shí)現(xiàn)dom動(dòng)態(tài)創(chuàng)建省市縱向列表菜單的方法,可實(shí)現(xiàn)省市列表菜單效果,涉及javascript鼠標(biāo)事件及頁(yè)面處理json數(shù)據(jù)的技巧,需要的朋友可以參考下
    2015-05-05
  • Knockoutjs的環(huán)境搭建教程

    Knockoutjs的環(huán)境搭建教程

    最近要在項(xiàng)目中使用Knockoutjs,因此今天就首先研究了一下Knockoutjs的環(huán)境搭建,并進(jìn)行了一個(gè)簡(jiǎn)單的測(cè)試,需要的朋友可以了解下
    2012-11-11
  • 微信小程序?qū)隫ant報(bào)錯(cuò)VM292:1 thirdScriptError的解決方法

    微信小程序?qū)隫ant報(bào)錯(cuò)VM292:1 thirdScriptError的解決方法

    這篇文章主要給大家介紹了關(guān)于微信小程序?qū)隫ant報(bào)錯(cuò)VM292:1 thirdScriptError的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 微信小程序使用前置攝像頭拍照

    微信小程序使用前置攝像頭拍照

    這篇文章主要為大家詳細(xì)介紹了微信小程序使用前置攝像頭拍照,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Angular?服務(wù)器端渲染緩存功能問(wèn)題

    Angular?服務(wù)器端渲染緩存功能問(wèn)題

    這篇文章主要介紹了Angular服務(wù)器端渲染緩存功能問(wèn)題,內(nèi)存緩存可用于應(yīng)用程序本身的渲染頁(yè)面和API請(qǐng)求。?兩種使用場(chǎng)合都通過(guò)開(kāi)發(fā)包@ngx-ssr或cache提供
    2022-06-06
  • 使javascript也能包含文件

    使javascript也能包含文件

    使javascript也能包含文件...
    2006-10-10
  • 快速使用Bootstrap搭建傳送帶

    快速使用Bootstrap搭建傳送帶

    這篇文章主要介紹了快速使用Bootstrap搭建傳送帶的相關(guān)資料,非常具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-05-05
  • 小程序多文件上傳 Tdesign的過(guò)程

    小程序多文件上傳 Tdesign的過(guò)程

    眾所周知,小程序文件上傳還是有點(diǎn)麻煩的,其實(shí)主要還是小程序?qū)Φ慕涌谟兄T多的不便,比如說(shuō),文件不能批量提交,只能一個(gè)個(gè)的提交,小程序的上傳需要專門的接口,現(xiàn)在給大家分享小程序多文件上傳 Tdesign的方法,感興趣的朋友一起看看吧
    2023-11-11
  • 下載網(wǎng)站打開(kāi)頁(yè)面后間隔多少時(shí)間才顯示下載鏈接地址的代碼

    下載網(wǎng)站打開(kāi)頁(yè)面后間隔多少時(shí)間才顯示下載鏈接地址的代碼

    有時(shí)候可能為了一些更好的廣告效果等原因,需要讓用戶等待一段時(shí)間以后,再顯示真實(shí)下載地址代碼,有利于緩解服務(wù)器壓力。
    2010-04-04
  • ExpressJS使用express-ws的實(shí)例詳解

    ExpressJS使用express-ws的實(shí)例詳解

    這篇文章主要介紹了ExpressJS使用express-ws的實(shí)例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09

最新評(píng)論

福州市| 明光市| 安多县| 洛宁县| 聂荣县| 琼海市| 沙河市| 西畴县| 哈尔滨市| 临汾市| 富裕县| 化州市| 二手房| 金昌市| 泊头市| 利辛县| 长汀县| 刚察县| 海淀区| 兴海县| 大洼县| 离岛区| 大荔县| 华亭县| 茶陵县| 邳州市| 昌江| 龙岩市| 土默特左旗| 迭部县| 阿城市| 河西区| 吴旗县| 浦城县| 洪洞县| 南郑县| 合作市| 左权县| 临夏县| 曲阳县| 兴宁市|