前言數據結構
以前學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導讀、類型與文法