摘要:一的數(shù)據(jù)類型有基本數(shù)據(jù)類型和引用類型基本數(shù)據(jù)類型包括引用類型是包括新增類型集合,區(qū)別于數(shù)組的就是中不可以有重復(fù)的數(shù)據(jù),??梢杂脕碜鋈ブ夭僮骱袑傩裕侠镌氐膫€(gè)數(shù)方法,返回的是原對(duì)象改變后的值方法,返回值是返回值是類型,與對(duì)象的區(qū)別是對(duì)象
一、js的數(shù)據(jù)類型有基本數(shù)據(jù)類型和引用類型
基本數(shù)據(jù)類型包括:undefined, null,boolean,number,string
引用類型是object:包括function,array,Date...
【es6新增類型】
1. set 集合,區(qū)別于數(shù)組的就是 set中不可以有重復(fù)的數(shù)據(jù),??梢杂脕碜鋈ブ夭僮?
含有size屬性,集合里元素的個(gè)數(shù)
add 方法,返回的是原對(duì)象改變后的值
delete方法,返回值是true/false
has("data1") 返回值是true/false
myset.keys(); myset.value()
2. Map類型,與對(duì)象的區(qū)別是:對(duì)象的鍵值只能是字符串,不可以是對(duì)象類型,使用Map類型可以避免鍵值必須是字符串的限制,可以是對(duì)象,數(shù)組等
創(chuàng)建的時(shí)候一個(gè)大的數(shù)組,每一項(xiàng)元素是小數(shù)組,小數(shù)組有兩個(gè)元素,分別是一組對(duì)應(yīng)的key,value。
方法:
set(key,value); get(key);
delete(key); has(key); //返回值均是true/false
mymap.forEach(function (value,key) {
console.log(key+":"+value);
}) // 遍歷,參數(shù)是value,key 【注意順序】
mymap.set({},"obj1");
mymap.set({},"obj2"); 這是兩個(gè)不同的鍵值,不會(huì)被覆蓋
3.Symbol類型 用相同的字符串做屬性名命名的時(shí)候會(huì)發(fā)生命名沖突,使用Symbol產(chǎn)生的名字是不同的
Symbol 即便傳入相同的參數(shù),兩者的值也是不一樣的 例:Symbol("foo") !== Symbol("foo");
如果想讓兩者相等,可以使用Symbol.for() 例 Symbol.for("bar") === Symbol.for("bar")
但是 Symbol("bar") !== Symbol.for("bar");
如果Symbol作為屬性名,不會(huì)被Object.keys() Object.getOwnPropertyNames()、JSON.stringify()返回;該屬性也不會(huì)出現(xiàn)在for...in、for...of循環(huán)中。但是,它也不是私有屬性,有一個(gè)Object.getOwnPropertySymbols方法,可以獲取指定對(duì)象的所有 Symbol 屬性名。
typeof null返回值是 “object”,null會(huì)被認(rèn)為是一個(gè)空對(duì)象的引用
null == undefined //true
當(dāng)定義一個(gè)變量用來保存對(duì)象,就可以將這個(gè)變量初始化為null
實(shí)現(xiàn)繼承
function Person(){}
function Student(){}
Student.prototype = new Person()
Student.prototype.constructor= Student
var bosn= new Student()
bosn instanceof Student //true
bosn instanceof Person // true
typeof | instanceof | Object.prototype.toString.apply()
typeof: 適用于基本類型和function,object具體是數(shù)組還是對(duì)象識(shí)別不了,null也是別不了
typeof [1,2] // "object" typeof "123" //"string" typeof null // "object" typeof undefined //"undefined" typeof function(){} //"function" typeof new Object() //"object"
instanceof: 適合自定義對(duì)象和原生對(duì)象,檢查prototype
[1,2] instanceof Array //true
Object.prototype.toString.apply() 適合基本對(duì)象和內(nèi)置對(duì)象,IE6、7、9中null和undefined 失效
三、空數(shù)組的問題[] == false //true 任意值與布爾值比較,都會(huì)將兩邊的值轉(zhuǎn)化為Number; Number([]) 為0 Number(false)也是0 所以[] == false 為true [] ==![] // true Number([]) = 0; Number(![]) = 0 ; 所以 []==![] 為true new Array(1) == false; //true new Array(1)==> [empty] , Number(new Array(1)) = 0 Boolean([]) //true if([]){console.log(1)} //此時(shí)[] 是true NaN == NaN // false null == undefined //true四、Number強(qiáng)制轉(zhuǎn)換數(shù)字
如果參數(shù)是Date對(duì)象,Number()會(huì)返回從1970年1月1日至今的毫秒數(shù)
如果字符串截去開頭和結(jié)尾的空白字符后,不是純數(shù)字字符串,那么最終返回結(jié)果為NaN。
Number轉(zhuǎn)對(duì)象
1.先調(diào)用對(duì)象自身的valueOf方法。如果返回原始類型的值,則直接對(duì)該值使用Number函數(shù),返回結(jié)果。 2.如果valueOf返回的還是對(duì)象,繼續(xù)調(diào)用對(duì)象自身的toString方法。如果toString返回原始類型的值,則對(duì)該值使用Number函數(shù),返回結(jié)果。 3.如果toString返回的還是對(duì)象,報(bào)錯(cuò)。
Number([1]); //1
轉(zhuǎn)換演變:
[1].valueOf(); // [1];
[1].toString(); // "1";
Number("1"); //1
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/109910.html
摘要:平時(shí)在復(fù)習(xí)基礎(chǔ)知識(shí)時(shí),經(jīng)常會(huì)遇到數(shù)據(jù)類型基礎(chǔ)數(shù)據(jù)類型內(nèi)置對(duì)象包裝類型對(duì)象,檢測數(shù)據(jù)類型時(shí),用到的值,感覺都差不多,但是又有差異。值與數(shù)據(jù)類型關(guān)系對(duì)比下圖,即可知值相較于基礎(chǔ)數(shù)據(jù)類型少多 平時(shí)在復(fù)習(xí)JS基礎(chǔ)知識(shí)時(shí),經(jīng)常會(huì)遇到JS數(shù)據(jù)類型、基礎(chǔ)數(shù)據(jù)類型、內(nèi)置對(duì)象、包裝類型對(duì)象,檢測數(shù)據(jù)類型時(shí),用到的typeof值,感覺都差不多,但是又有差異。今天特地整理下,方便理解。 JS數(shù)據(jù)類型 基礎(chǔ)數(shù)...
摘要:舉個(gè)例子在上面的例子可以看到,我們聲明是一個(gè)數(shù)字,但是我們?cè)谥髮⒌闹涤指某闪俗址筒紶栔岛竺鏁?huì)講這些類型。基本類型字符串表示一個(gè)字符串,如。因此,我們可以寫一個(gè)函數(shù),用來精確檢測類型。 showImg(https://segmentfault.com/img/remote/1460000017309509?w=850&h=572); 定義 1. 什么是數(shù)據(jù)類型? 數(shù)據(jù)類型,就是將...
摘要:相當(dāng)于相當(dāng)于相當(dāng)于基礎(chǔ)類型不屬于包裝的對(duì)象類型小結(jié)數(shù)據(jù)類型是每一個(gè)語言的基礎(chǔ)由于屬于弱類型腳本語言因此數(shù)據(jù)只有在賦值后才能直到變量的數(shù)據(jù)類型下一次我們具體介紹對(duì)象的概念 前言 在《你所不知道的javascript上篇》書籍 以及《javascript權(quán)威指南》等書籍里面, 均有介紹js的數(shù)據(jù)類型,對(duì)象,原型,繼承。結(jié)合工作經(jīng)驗(yàn), 以及借用一些開源庫和框架的源碼, 進(jìn)行一次梳理。 首先介...
摘要:運(yùn)算符可以用來檢測某個(gè)構(gòu)造函數(shù)的屬性是否存在于另外一個(gè)要檢測對(duì)象的原型鏈上。使用方法可以獲取到變量的準(zhǔn)確的數(shù)據(jù)類型就能解決基本包裝類型的檢測錯(cuò)誤和的檢測不安全。 本文共 1750 字,讀完只需 7 分鐘 數(shù)據(jù)類型有哪些? ECMAScript 的數(shù)據(jù)類型分為簡單數(shù)據(jù)類型(也被稱為基本數(shù)據(jù)類型,原始數(shù)據(jù)類型): Undefined Null String Number Boolean ...
摘要:介紹編程數(shù)據(jù)結(jié)構(gòu),算法,內(nèi)存分配表單驗(yàn)證需要一門語言可以直接運(yùn)行在瀏覽器中,來完成表單驗(yàn)證的功能。 Javascript介紹編程(數(shù)據(jù)結(jié)構(gòu),算法,內(nèi)存分配)表單驗(yàn)證 需要一門語言可以直接運(yùn)行在瀏覽器中,來完成表單驗(yàn)證的功能。 瀏覽器廠商 網(wǎng)景 firefox js 標(biāo)準(zhǔn) js解釋器 IE js js解釋器 google js j...
摘要:其他字符可以是字母下劃線美元符號(hào)或數(shù)字。在使用聲明變量,但沒有對(duì)其初始化時(shí),這個(gè)變量的值就是。從邏輯上思考,他們的值,一個(gè)是,一個(gè)報(bào)錯(cuò)他們的類型,卻都是。這時(shí),可以采用變量的類型進(jìn)行比較。類型有兩個(gè)值字面量和。 javascript 數(shù)據(jù)類型 javascript由于nodejs的出現(xiàn)將觸角延伸至各個(gè)開發(fā)領(lǐng)域, 也由于 ES6等后續(xù)版本的推出對(duì)程序員越來越友好, 收到程序員的強(qiáng)烈推崇,...
閱讀 1122·2021-09-22 15:32
閱讀 1722·2019-08-30 15:53
閱讀 3253·2019-08-30 15:53
閱讀 1404·2019-08-30 15:43
閱讀 453·2019-08-28 18:28
閱讀 2567·2019-08-26 18:18
閱讀 669·2019-08-26 13:58
閱讀 2528·2019-08-26 12:10