學習JS的心路歷程-類型

前言數據結構

以前學JS時候都是靠着谷狗一路跌跌撞撞的學過來,歷來沒有去翻過MDN的文件,致使留了許多技術債給本身。網站

 

最近有幸遇到一位前輩並開始從頭學JS,前輩表示學程序不看文件是想做死本身?因而個人第一份功課就是讀完MDN的JS入門文件,在這過程當中我也筆記了一些我認爲蠻重要的地方,但願藉由這三十天的過程當中能加深本身印象並分享給各位。設計

 

若是文章中有任何的錯誤或引用沒有附上出處也歡迎各位指教。ip

 

數據類型string

JavaScript中,總共有七種類型:it

String入門

Numbertable

Booleanobject

Null數據類型

Undefined

Symbol(於ECMAScript 6新定義)

Object

其中又能夠分紅如下兩大類別:

 

原始類型(Primitive type)

物件類型

除了Object其他都是原始類型

原始類型(Primitive type)

JS中最基本的單位,是一個值,由於不是物件因此沒有任何屬性。

 

不可變異(immutable)

全部基本類型都是不可改變的,在這裏要注意的是別把變數和類型搞混了。

咱們能夠賦予變數一個新的值,不管是字串或是數字類型,可是卻沒法更改現有值。

 

物件類型

JS中除了原始類型之外的一切都是物件

 

物件這個類型表明了一種複合值(computed value),能夠對他設定一些特性(properties),它們每個都持有了能夠是任何類型的值。

 

這樣說聽請來有點使人不知所措,來看個例子吧:

 

var obj ={

a:'hola',

b:42,

c:true

}

obj.a;// 'hola'

obj.b;//42

obj.c;//true

辨別類型:

用typeof能夠判斷上述中除了null的值

 

var myStr = 'hello world';

typeof myStr;//「string」

typeof 'hello world';//「string」

 

var myNum = 42;

typeof myNum;//「number」

typeof 42;//「number」

 

var myBol = true;

typeof myBol;//「boolean」

typeof true;//「boolean」

 

var myUndefined;

typeof myUndefined;//「undefined」

typeof undefined;//「undefined」

 

typeof null;//「object」

var myObj = {

a:'hola',

}

typeof myObj;//「object」

使用typeof(null)===「object」是早期JS設計時候的Bug。

 

JS會讓這bug存在這麼久(大概快二十年)緣由在於不少網站仰賴這個bug若是修正可能會產生更多的bug。

 

參考:

MDN Primitive

JavaScript的數據類型與數據結構

 

你所不知道的JS導讀、類型與文法

相關文章
相關標籤/搜索