午夜大片爽爽爽免费影院丨色综合色综合久久综合频道88丨日韩人妻无码中文字幕视频丨一本无码久本草在线中文字幕dvd丨国产午夜亚洲精品国产成人

JavaScript數據類型

2020/10/27 10:12:57   閱讀:2483    發布者:2483

1.1基本()類型

  • Number: 任意數值
  • String: 任意文本
  • Boolean: true/false
  • undefined: undefined
  • null: null
  • symbol(ECMAScript 6 新定義)
  • BigInt(ECMAScript 2020 新增)

1.2對象(引用)類型

  • Object: 任意對象
  • Array: 特別的對象類型(下標/內部數據有序)
  • Function: 特別的對象類型(可執行)

二、數據類型判斷

通常我們會使用四種方法來判斷JavaScript的類型,分別是:typeofinstanceofconstructortoString(),接下來我們分別來看這幾種方法使用以及區別

2.1通過typeOf 判斷

typeof是一個操作符,其右側跟一個一元表達式,并返回這個表達式的數據類型。返回的結果用該類型的字符串(全小寫字母)形式表示,包含這8種: numberbigIntbooleansymbolstringobjectundefinedfunction

引用類型,除了function返回function類型外,其他均返回object,其中,null 有屬于自己的數據類型 Null , 引用類型中的 數組、日期、正則 也都有屬于自己的具體類型,而 typeof 對于這些類型的處理,只返回了處于其原型鏈最頂端的 Object 類型


作者:撒點料兒
鏈接:https://juejin.im/post/6865211899303165959
來源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

2.2通過instanceof 判斷

instanceof用來判斷A是否為B的實例,表達式為:A instanceof B,如果AB的實例,則返回true,否則返回falseinstanceof檢測的是原型,內部機制是通過判斷對象的原型鏈中是否有類型的原型。

另外一種情況下,obj instanceof A 原表達式的值也會改變,就是改變對象 obj 的原型鏈的情況,雖然在目前的ES規范中,我們只能讀取對象的原型而不能改變它,但借助于非標準的 proto 偽屬性,是可以實現的。比如執行 obj.proto = {} 之后,obj instanceof A就會返回 false ,但它不能檢測 null undefined

由上圖可以看出[]的原型指向Array.prototype,間接指向Object.prototype, 因此 [] instanceof Array 返回true [] instanceof Object 也返回true

instanceof 只能用來判斷兩個對象是否屬于實例關系, 而不能判斷一個對象實例具體屬于哪種類型。

2.3 通過constructor 判斷

constructor是原型prototype的一個屬性,當函數被定義時候,js引擎會為函數添加原型prototype,并且這個prototypeconstructor屬性指向函數引用, 因此重寫prototype會丟失原來的constructor。 從原型鏈角度講,構造函數就是新對象的類型。這樣做的意義是,讓對象誕生以后,就具有可追溯的數據類型

2.4 通過 toString() 判斷

toString()Object的原型方法,調用該方法,默認返回當前對象的[[Class]]。這是一個內部屬性,其格式為[object Xxx],其中Xxx就是對象的類型。

對于Object對象,直接調用toString()就能返回[object Object],而對于其他對象,則需要通過callapply來調用才能返回正確的類型信息。

這是因為toStringObject的原型方法,而Array Function等類型作為Object的實例,都重寫了toString方法。不同的對象類型調用toString方法時,根據原型鏈的知識,調用的是對應的重寫之后的toString方法(Function類型返回內容為函數體的字符串,Array類型返回元素組成的字符串.....),而不會去調用Object上原型toString方法(返回對象的具體類型),所以采用obj.toString()不能得到其對象類型,只能將obj轉換為字符串類型;因此,在想要得到對象的具體類型時,應該調用Object上原型toString方法。

鏈接:https://juejin.im/post/6865211899303165959

主站蜘蛛池模板: 国产乱码一卡二卡三卡免费| 国产小屁孩cao大人| 亚洲亚洲人成综合丝袜图片| 国产日韩制服丝袜第一页| 日韩电影久久久被窝网| 乱子伦农村xxxxbbb| 人妻少妇偷人无码精品av | 日本乱妇乱子视频| 肉体暴力强伦轩在线播放| 国产婷婷色一区二区三区在线| 午夜香蕉成视频人网站| 久久人人爽人人爽爽久久小说| 性生交大片免费看女人按摩摩| 亚洲乱码一区二三四区ava| 天天躁久久躁日日躁| 无码囯产精品一区二区免费| 亚洲欧洲成人精品香蕉网| 99久久国产综合精品1| 精品乱码一区二区三区四区| 亚洲无线码中文字幕在线| 国产在线拍揄自揄拍免费下载| 色欲天天天综合网| 丰满白嫩大屁股ass| 99精品国产一区二区三区a片| 久久综合给合久久狠狠97色| 福利视频一二三在线观看| 亚洲成av人片在线观l看福利1 | 欧美 日韩 国产 亚洲 色| 国产无套一区二区三区浪潮| 国精产品蘑菇一区一区有限| 国产成人一区二区三区别| 国产玖玖玖九九精品视频靠爱| 日韩超碰人人爽人人做人人添| 亚洲人成人网站18禁| 人妻中文无码久热丝袜| 欧美成人www在线观看| 琪琪电影午夜理论片八戒八戒| 亚洲 欧美 天堂 综合| 电影 国产 偷窥 亚洲 欧美| 性欧美vr高清极品| 天天射天天日本一道|