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

詳解JavaScript中的數(shù)據(jù)類型,以及檢測數(shù)據(jù)類型的方法

 更新時間:2020年09月17日 09:24:21   作者:追夢者  
這篇文章主要介紹了JavaScript中的數(shù)據(jù)類型,以及檢測數(shù)據(jù)類型的方法,幫助大家鞏固基礎(chǔ)知識,感興趣的朋友可以了解下

一.js中的數(shù)據(jù)類型有哪些?

在js中,基本數(shù)據(jù)類型有五種,分別是 string、number、boolean、null、undefined,不過在ES6中新增加的了一種基本數(shù)據(jù)類型Symbol(表示獨一無二的值),其作用主要是從根本上防止屬性名的沖突而設(shè)定的。

除了基本數(shù)據(jù)類型之外,還有引用數(shù)據(jù)類型object,也有人稱之為復(fù)雜數(shù)據(jù)類型,包含了我們常見的Array、Object、Function等。

所以現(xiàn)在js中的數(shù)據(jù)類型共有七種。

PS: Symbol數(shù)據(jù)類型通過Symbol函數(shù)生成。也就是說,對象的屬性名現(xiàn)在可以有原來的字符串以及現(xiàn)在的Symbol類型倆種了,凡是屬性名屬于Symbol類型,就是獨一無二的,可以保證不會與其他屬性名沖突。

Symbol函數(shù)還可以接收一個字符串參數(shù),表示對Symbol實例的描述。

let s = Symbol()
console.log(typeof s) // "symbol"

let s1 = Symbol('s1')
let s2 = Symbol('s2')
console.log(s1) // Symbol(s1)
console.log(s2) // Symbol(s2)

注意:Symbol函數(shù)的參數(shù)只是表示對當(dāng)前實例的描述,因此相同參數(shù)的Symbol的返回值是不相等的。

二.js數(shù)據(jù)類型檢測的方法(一般有一下幾種):

1.typeof:typeof一般用于檢測基本數(shù)據(jù)類型,因為它檢測引用數(shù)據(jù)類型都返回Objcet

console.log(typeof 1) // "number"
console.log(typeof 'a') // "string"
console.log(typeof undefined) // "undefined"
console.log(typeof true) // "boolean"
console.log(typeof null) // "object"
console.log(typeof ) // "symbol"
function fun(){ }
console.log(typeof fun) // "function"

注意:typeof檢測null也會返回Object,這是js一直以來遺留的BUG。用typeof檢測function返回的是'function'。

2.instanceof 這個方法主要是用來準(zhǔn)備的檢測引用數(shù)據(jù)類型的(不能用來檢測基本數(shù)據(jù)類型),用來檢測構(gòu)造函數(shù)的prototype屬性是否出現(xiàn)在對象原型鏈中的任意位置。

let fun = function(){ }
fun instanceof Function  //true
let obj ={ }
obj instanceof Object //true
let arr = [ ]
arr instanceof Array //true

曾今被面試官問過一道題 1 instanceof 返回的是什么? 當(dāng)時給因為自身原因說了返回true,現(xiàn)在想想Emmm…

1 instanceof Number //false 
null instanceof Object // false

instanceof運算符直接訪問的變量的原始值,不會自動建立包裝類。因此不能用來判斷基本數(shù)據(jù)類型。

3.Object.prototype.toString()可以用來準(zhǔn)備的檢測所有數(shù)據(jù)類型。

Object.prototype.toString.call([])
// "object Array"
Object.prototype.toString.call(1)
// "object Number"
Object.prototype.toString.call(null)
// "object Null"
Object.prototype.toString.call(undefined)
// "object Undefined"
Object.prototype.toString.call({})
// "object Object"
Object.prototype.toString.call(function add(){})
// "object Function"
....

4.constructor通過檢測類型在原型鏈中的constructor指向來返回布爾值。

let arr =[]
arr.constructor==Array
// true
let fun = function(){}
fun.constructor==Function
//true

注意:null和undefined是沒有constructor屬性的,可以用其他方法判斷。

通過幾這次的總結(jié),對于js的數(shù)據(jù)類型,以及如何檢測數(shù)據(jù)類型有了深刻的認(rèn)識,下次面試不慌張~

以上就是詳解JavaScript中的數(shù)據(jù)類型,以及檢測數(shù)據(jù)類型的方法的詳細(xì)內(nèi)容,更多關(guān)于JavaScript 數(shù)據(jù)類型的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

临夏市| 安国市| 太谷县| 佛山市| 屯留县| 临武县| 沁阳市| 泗水县| 蓬莱市| 平和县| 云安县| 漳州市| 临漳县| 会宁县| 腾冲县| 梁河县| 舞阳县| 隆回县| 杭锦旗| 金沙县| 武川县| 南江县| 友谊县| 龙川县| 延庆县| 清新县| 武威市| 敦化市| 凤凰县| 伊宁县| 阿巴嘎旗| 巴青县| 昂仁县| 宜丰县| 永平县| 大宁县| 十堰市| 册亨县| 乌鲁木齐市| 阿坝县| 朔州市|