摘要:在看醫(yī)用類型的例子上述代碼中,都是引用類型。數(shù)據(jù)類型檢測返回一個表示數(shù)據(jù)類型的字符串,返回結(jié)果包括等種數(shù)據(jù)類型,但不能判斷等。有效有效有效有效有效有效無效無效無效無效是用來判斷是否為的實例,表達式為,如果是的實例,則返回否則返回。
js中常用的數(shù)據(jù)類型
JavaScript 變量能夠保存多種數(shù)據(jù)類型,而JavaScript中的數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)累心,常用的基本數(shù)據(jù)類型包括數(shù)字(Number)、字符串(String)、布爾值(Boolean)、Null、Undefine、Symbol等,常用的引用數(shù)據(jù)類型包括Object(對象)、Array(數(shù)組)、Function(函數(shù))。 基本類型和引用類型存儲于內(nèi)存的位置不同,基本類型直接存儲在棧中,而引用類型的對象存儲在堆中,與此同時,在棧中存儲了指針,而這個指針指向正是堆中實體的起始位置,區(qū)別如下:
let a = 10; let b = a; b = 20; console.log(a) //10 console.log(b) //20
上述代碼中,a、b都是基本數(shù)據(jù)類型,兩者分別修改賦值,相互之間沒有任何影響。在看醫(yī)用類型的例子:
let x = {a:10,b:20} let y = x y.a = 100 y.b = 200 console.log(x) //{a:100,b:200} console.log(y) //{a:100,b:200}
上述代碼中,x、y都是引用類型。在執(zhí)行了x = y之后,修改y的屬性值,x的也跟著變化。因為x和y都是引用類型,指向了同一個內(nèi)存地址,即兩者引用的是同一個值,因此y修改屬性時,x的值隨之改動。數(shù)據(jù)類型檢測
typeof
typeof返回一個表示數(shù)據(jù)類型的字符串,返回結(jié)果包括:number、boolean、string、symbol、object、undefined、function等7種數(shù)據(jù)類型,但不能判斷null、array等。
typeof Symbol(); // symbol 有效 typeof ""; // string 有效 typeof 1; // number 有效 typeof true; //boolean 有效 typeof undefined; //undefined 有效 typeof new Function(); // function 有效 typeof null; //object 無效 typeof []; //object 無效 typeof new Date(); //object 無效 typeof new RegExp(); //object 無效
instanceof
是用來判斷A是否為B的實例,表達式為:A instanceof B,如果A是B的實例,則返回true,否則返回false。instanceof 運算符用來測試一個對象在其原型鏈中是否存在一個構(gòu)造函數(shù)的 prototype 屬性,但它不能檢測null 和 undefined
[] instanceof Array; //true {} instanceof Object; //true new Date() instanceof Date; //true new RegExp() instanceof RegExp //true null instanceof Null //報錯 undefined instanceof undefined //報錯
Object.prototype.toString.call()
Object.prototype.toString.call() 是最準(zhǔn)確最常用的方式。
Object.prototype.toString.call("") ; // [object String] Object.prototype.toString.call(1) ; // [object Number] Object.prototype.toString.call(true) ; // [object Boolean] Object.prototype.toString.call(undefine) ; // [object Undefined] Object.prototype.toString.call(null) ; // [object Null] Object.prototype.toString.call(new Function()) ; // [object Function] Object.prototype.toString.call(new Date()) ; // [object Date] Object.prototype.toString.call([]) ; // [object Array] Object.prototype.toString.call(new RegExp()) ; // [object RegExp] Object.prototype.toString.call(new Error) ; // [object Error]
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105105.html
摘要:最近開始看源碼,并將源碼解讀放在了我的計劃中。今天就跟大家聊一聊中一些常用類型檢查方法,以及一些工具類的判斷方法。用是否含有屬性來判斷工具類判斷方法接下來看下一些常用的工具類判斷方法。 Why underscore 最近開始看 underscore.js 源碼,并將 underscore.js 源碼解讀 放在了我的 2016 計劃中。 閱讀一些著名框架類庫的源碼,就好像和一個個大師對話...
摘要:摘要這篇文章講述運算符判斷基本類型和引用類型的區(qū)別,以及怎么判斷數(shù)組類型和空對象有種原始類型,即和。類型判斷類型判斷,一般就是判斷是否是數(shù)組,是否是空對象。方法四使用語法,返回一個數(shù)組,只需要判斷數(shù)組長度是否大于即可。 摘要 這篇文章講述typeof運算符判斷基本類型和引用類型的區(qū)別,以及怎么判斷數(shù)組類型和空對象 typeof ECMAScript 有 5 種原始類型(primitiv...
摘要:和這三種基本的數(shù)據(jù)類型,都有對應(yīng)的引用包裝類型和。應(yīng)用于引用類型的判斷,所以對于這三類基本類型沒有什么意義。 JS 中的類型判斷 js中的數(shù)據(jù)類型 基本數(shù)據(jù)類型 undefined、number、string、boolean 引用數(shù)據(jù)類型 null、Object、Number、String、Boolean、Function、Array、Date、RegExp、Error、Argumen...
摘要:中九個內(nèi)置對象在規(guī)范中定義了六種數(shù)據(jù)類型其中原始值類型有種,引用類型有種一有包裝對象數(shù)值型,包括整形和浮點型其中都是類型二有包裝對象字符串類型,有兩種表示方式,雙引號單引號。方法可以將任意類型數(shù)據(jù)轉(zhuǎn)成字符串。 JS中九個內(nèi)置對象 showImg(https://segmentfault.com/img/bV6iZG?w=481&h=411); 在ECMAScript規(guī)范(ES5)中定義...
摘要:最常見的判斷方法它的官方解釋操作符返回一個字符串,表示未經(jīng)計算的操作數(shù)的類型。另外,是判斷對象是否屬于某一類型,而不是獲取的對象的類型。多個窗口意味著多個全局環(huán)境,不同的全局環(huán)境擁有不同的全局對象,從而擁有不同的內(nèi)置類型構(gòu)造函數(shù)。 js中的數(shù)據(jù)類型 js中只有六種原始數(shù)據(jù)類型和一個Object: Boolean Null Undefined Number String Symbol ...
摘要:基本數(shù)據(jù)類型引用類型判斷數(shù)據(jù)類型的方法判斷中的數(shù)據(jù)類型有一下幾種方法接下來主要比較一下這幾種方法的異同。通常情況下用判斷就可以了,遇到預(yù)知類型的情況可以選用或方法實在沒轍就使用方法。 基本數(shù)據(jù)類型:String、Number、Boolean、Symbol、undefined、Null引用類型:Object Array Function 判斷數(shù)據(jù)類型的方法: 判斷js中的數(shù)據(jù)類型有一...
閱讀 3739·2021-10-14 09:43
閱讀 3323·2021-08-25 09:38
閱讀 618·2019-08-30 15:55
閱讀 1362·2019-08-30 13:05
閱讀 2254·2019-08-29 16:05
閱讀 517·2019-08-29 12:58
閱讀 2804·2019-08-29 12:34
閱讀 3255·2019-08-26 12:15