摘要:當(dāng)完成訪問后,這個(gè)臨時(shí)對(duì)象會(huì)被銷毀掉。對(duì)于判斷對(duì)象類型的話,常用返回適合基本類型及檢測(cè),遇到失效。通過拿到,適合內(nèi)置對(duì)象和基元類型,遇到和失效等返回。
轉(zhuǎn)載請(qǐng)注明出處
原文連接 http://blog.huanghanlian.com/article/5b698e54b8ea642ea9213f49
數(shù)據(jù)類型JavaScript六種數(shù)據(jù)類型
JavaScript一共有六種數(shù)據(jù)類型,其中有五種原始類型,和一種對(duì)象類型。
JavaScript 隱式轉(zhuǎn)換
var x="The answer"+42;//The answer42 var y=42+"The answer";//42The answer
這里的加號(hào)可以理解為字符串的拼接
var x="37"-7; //30 var y="37"+7; //377
這里的減號(hào)會(huì)理解為減法運(yùn)算,而加號(hào)會(huì)理解為字符串拼接
等于判斷
var x="1.23"==1.23;//true 當(dāng)?shù)扔谝贿吺亲址贿吺菙?shù)字的時(shí)候會(huì)嘗試把字符串轉(zhuǎn)換為數(shù)字再進(jìn)行比較 var y=0==false;//true var e=null==undefined;//true var c=new Object()==new Object();//false var d=[1,2]==[1,2];//false
類型不同,嘗試類型轉(zhuǎn)換和比較
類型不同,嘗試類型轉(zhuǎn)換和比較:
null == undefined 相等
number == string 轉(zhuǎn)number 1 == “1.0" // true
boolean == ? 轉(zhuǎn)number 1 == true // true
object == number | string 嘗試對(duì)象轉(zhuǎn)為基本類型 new String("hi") == ‘hi’ // true
其它:false
嚴(yán)格等于
a===b
顧名思義,它首先會(huì)判斷等號(hào)兩邊的類型,如果兩邊類型不同,返回false
如果類型相同,
類型相同,同===
var h=null===null;//true var f=undefined===undefined;//true var g=NaN===NaN;//false number類型它和任何值比較都不會(huì)相等,包括和它自己 var l=new Object()===new Object();//false 對(duì)象應(yīng)該用引用去比較,而不是用值去比較,因?yàn)樗鼈儾皇峭耆嗤膶?duì)象。所以我們定義對(duì)象x和y去比較只有這樣才會(huì)是true
JavaScript 包裝對(duì)象
原始類型number,string,boolean這三種原始類型都有對(duì)應(yīng)的包裝類型。
var a = “string”; alert(a.length);//6 a.t = 3; alert(a.t);//undefined
字符串,當(dāng)把一個(gè)基本類型嘗試以對(duì)象的方式去使用它的時(shí)候,比如訪問length屬性,js會(huì)很智能的把基本類型轉(zhuǎn)換為對(duì)應(yīng)的包裝類型對(duì)象。相當(dāng)于new了string。當(dāng)完成訪問后,這個(gè)臨時(shí)對(duì)象會(huì)被銷毀掉。所以a.t賦值為3后再去輸出a.t值是undefined
JavaScript 類型檢測(cè)
類型檢測(cè)有以下幾種
typeof
instanceof
Object.prototype.toString
constructor
duck type
最常見的typeof它會(huì)返回一個(gè)字符串,非常適合函數(shù)對(duì)象和基本類型的判斷
typeof 100 === “number” typeof true === “boolean” typeof function () {} === “function” typeof(undefined) ) === “undefined” typeof(new Object() ) === “object” typeof( [1, 2] ) === “object” typeof(NaN ) === “number” typeof(null) === “object”
typeof判斷一些基本類型,函數(shù)對(duì)象的時(shí)候非常方便。但是對(duì)于其他對(duì)象的類型判斷就會(huì)沒有辦法了。比如說想判斷一個(gè)對(duì)象是不是數(shù)組,如果用typeof會(huì)返回object顯然不是我想要的。
對(duì)于判斷對(duì)象類型的話,常用obj instanceof Object
[1, 2] instanceof Array === true new Object() instanceof Array === false function person(){}; function student(){}; student.prototype=new person(); var bosn =new student(); console.log(bosn instanceof student)//true var one =new person(); console.log(one instanceof person)//true console.log(bosn instanceof person)//true
Object.prototype.toString
**IE6/7/8 Object.prototype.toString.apply(null) 返回”[object Object]”
**
Object.prototype.toString.apply([]); === “[object Array]”; Object.prototype.toString.apply(function(){}); === “[object Function]”; Object.prototype.toString.apply(null); === “[object Null]” Object.prototype.toString.apply(undefined); === “[object Undefined]”
typeof
適合基本類型及function檢測(cè),遇到null失效。
[[Class]]
通過{}.toString拿到,適合內(nèi)置對(duì)象和基元類型,遇到null和undefined失效(IE678等返回[object Object])。
instanceof
適合自定義對(duì)象,也可以用來檢測(cè)原生對(duì)象,在不同iframe和window間檢測(cè)時(shí)失效。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83199.html
摘要:表達(dá)式是一種短語,可使解釋器用來產(chǎn)生一個(gè)值。權(quán)威指南運(yùn)算符三元運(yùn)算符值為就會(huì)返回冒號(hào)前面的值,如果是就會(huì)取冒號(hào)右邊的值。運(yùn)算符運(yùn)算符就是刪除對(duì)象上的屬性,變量,被刪除了。運(yùn)算符運(yùn)算符是一元運(yùn)算符,不管值是多少都會(huì)返回 轉(zhuǎn)載請(qǐng)注明出處 原文連接 http://blog.huanghanlian.com/article/5b698e88b8ea642ea9213f4a 表達(dá)式和運(yùn)算符 Ja...
摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學(xué)習(xí)即將閱讀的一些優(yōu)秀經(jīng)典前端后端書籍。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學(xué)習(xí)、即將閱讀)的一些優(yōu)秀經(jīng)典前端/Java后端書籍。全文為純?cè)瓌?chuàng),且將持續(xù)更新,未經(jīng)許可,不得進(jìn)行轉(zhuǎn)載。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 基礎(chǔ) 基礎(chǔ)書籍 進(jìn)階 進(jìn)階階段,深入學(xué)習(xí)的書...
摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學(xué)習(xí)即將閱讀的一些優(yōu)秀經(jīng)典前端后端書籍。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學(xué)習(xí)、即將閱讀)的一些優(yōu)秀經(jīng)典前端/Java后端書籍。全文為純?cè)瓌?chuàng),且將持續(xù)更新,未經(jīng)許可,不得進(jìn)行轉(zhuǎn)載。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 基礎(chǔ) 基礎(chǔ)書籍 進(jìn)階 進(jìn)階階段,深入學(xué)習(xí)的書...
摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學(xué)習(xí)即將閱讀的一些優(yōu)秀經(jīng)典前端后端書籍。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學(xué)習(xí)、即將閱讀)的一些優(yōu)秀經(jīng)典前端/Java后端書籍。全文為純?cè)瓌?chuàng),且將持續(xù)更新,未經(jīng)許可,不得進(jìn)行轉(zhuǎn)載。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 基礎(chǔ) 基礎(chǔ)書籍 進(jìn)階 進(jìn)階階段,深入學(xué)習(xí)的書...
閱讀 3552·2021-09-06 15:13
閱讀 1535·2021-09-02 10:19
閱讀 2482·2019-08-30 15:52
閱讀 929·2019-08-29 15:25
閱讀 1577·2019-08-26 18:36
閱讀 505·2019-08-26 13:23
閱讀 1345·2019-08-26 10:46
閱讀 3510·2019-08-26 10:41