回歸簡單

要理解JS眨唬,首先会前,你得放下對象和類的概念,回到數(shù)據(jù)和代碼的本質(zhì)匾竿。編程世界只有數(shù)據(jù)和代碼兩種基本元素瓦宜,而這兩種元素又有糾纏不清的關(guān)系。JS就是把數(shù)據(jù)和代碼都簡化到最原始的程度岭妖。

JS中的數(shù)據(jù)是簡潔的临庇。簡單數(shù)據(jù)只有undefinednull昵慌、boolean假夺、numberstring這5種斋攀,而復(fù)雜數(shù)據(jù)只有1種已卷,即object。好比中國古典的樸素唯物思想淳蔼,把世界最基本的元素歸結(jié)為金木水火土侧蘸,其他復(fù)雜的非物質(zhì)都是由這5種基本元素組成的。

JS中的代碼只體現(xiàn)為一種形式鹉梨,就是funciton讳癌。

可以使用typeof運算符來獲取一個JS元素的類型。由于typeof是運算符存皂,因此可以有兩種等價的寫法:typeof Xtypeof(X)晌坤。

任何一個JS的標(biāo)識、常量、變量泡仗、參數(shù)都只是undefined埋虹、nullbool娩怎、number搔课、stringobject截亦、function類型中的一種爬泥,也即 typeof返回值表明的類型。除此之外崩瓤,沒有其他類型了袍啡。

簡單數(shù)據(jù)類型

  • undefined

代表一切未知的事物,啥都沒有却桶,無法想象境输,代碼也就更無法去處理了。

可將 undefined 賦值給任何變量或?qū)傩杂毕担⒉灰馕肚宄嗽撟兞啃崞剩炊鴷虼硕嗔艘粋€屬性。

console.log(typeof(undefined)); // undefined
  • null

有那么一個概念嘁扼,但沒有東西信粮。無中似有,有中似無趁啸。雖難以想象强缘,但已經(jīng)可以用代碼來處理了。

// typeof null 返回 object不傅, 但 null 并非 object旅掂,具有 null 值的變量也并非 object。
console.log(typeof null);// object
  • boolean

是就是访娶,非就是辞友,沒有疑義。對就對震肮,錯就錯,絕對明確留拾。即能被代碼處理戳晌,也可以控制代碼的流程。

  • Number

線性的事物痴柔,大小和次序分明沦偎,多而不亂,便于代碼進(jìn)行批量處理,也控制代碼的迭代和循環(huán)等豪嚎。

console.log(typeof NaN, typeof Infinity); // number number
// NaN 參與任何數(shù)值計算的結(jié)果都是 NaN
console.log(NaN!=NaN, Infinity/Infinity);// true NaN
  • String
    面向人類的理性事物搔驼,而不是機(jī)器信息。人機(jī)信息溝通侈询、代碼據(jù)此理解人的意圖等功能舌涨,都靠它了。

為了進(jìn)一步簡化編程扔字,JS還在這些簡單數(shù)據(jù)之上囊嘉,再規(guī)定了一些特殊含義。這些特殊含義又么可以使得 JS 的語句寫得更簡潔革为。但是扭粱,這些特殊含義有時也會給我們設(shè)下難以琢磨的陷阱。

例如震檩,undefined琢蛤、null""抛虏、0這4個值轉(zhuǎn)換為邏輯時就是 false博其,除了這4個家伙再加上 false 本身之外,其他任何東西轉(zhuǎn)換為邏輯值時都是 true嘉蕾。有趣的是在undefined贺奠、null""错忱、0儡率、false這5個家伙中,除了undefined==null之外以清,它們卻又不互相等儿普。使用這些規(guī)定,我們可以編寫更簡潔的邏輯判斷語句掷倔。

再如眉孩,完全由數(shù)字組成的字符串與該字符串表示的值是相等的。

// JS將`0`開頭的整數(shù)常量當(dāng)八進(jìn)制數(shù)處理
console.log(123=='123', 0123=='0123');// true false

JS中===表示全等勒葱,也就是數(shù)據(jù)值和數(shù)據(jù)類型都必須相等才為真浪汪。

console.log(undefined==null, undefined===null);// true false

!==就是不全等,不全等與全不等是兩個概念凛虽。

  • “不全等”所表示的邏輯是 A!=B || typeof(A)!=typeof(B)
  • “全不等”必須是值不相等且類型也不相等 A!=B && typeof(A)!=typeof(B)

不過死遭,在編程中基本遇不到“全不等”這樣的判斷,因此JS也就沒有專門的運算符凯旋。

所有簡單類型都不是對象呀潭,JS沒有將對象化的能力賦予給簡單數(shù)據(jù)類型钉迷,直接被賦予簡單類型常量值的標(biāo)識符、變量钠署、參數(shù)都不是一個對象糠聪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谐鼎,隨后出現(xiàn)的幾起案子舰蟆,更是在濱河造成了極大的恐慌,老刑警劉巖该面,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夭苗,死亡現(xiàn)場離奇詭異,居然都是意外死亡隔缀,警方通過查閱死者的電腦和手機(jī)题造,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來猾瘸,“玉大人界赔,你說我怎么就攤上這事∏4ィ” “怎么了淮悼?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長揽思。 經(jīng)常有香客問我袜腥,道長,這世上最難降的妖魔是什么钉汗? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任羹令,我火速辦了婚禮,結(jié)果婚禮上损痰,老公的妹妹穿的比我還像新娘福侈。我一直安慰自己,他們只是感情好卢未,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布肪凛。 她就那樣靜靜地躺著,像睡著了一般辽社。 火紅的嫁衣襯著肌膚如雪伟墙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天滴铅,我揣著相機(jī)與錄音远荠,去河邊找鬼。 笑死失息,一個胖子當(dāng)著我的面吹牛譬淳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盹兢,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼邻梆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了绎秒?” 一聲冷哼從身側(cè)響起浦妄,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎见芹,沒想到半個月后剂娄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡玄呛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年阅懦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徘铝。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡耳胎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惕它,到底是詐尸還是另有隱情怕午,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布淹魄,位于F島的核電站郁惜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏甲锡。R本人自食惡果不足惜兆蕉,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搔体。 院中可真熱鬧恨樟,春花似錦、人聲如沸疚俱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呆奕。三九已至养晋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間梁钾,已是汗流浹背绳泉。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留姆泻,地道東北人零酪。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓冒嫡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親四苇。 傳聞我的和親對象是個殘疾皇子孝凌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容