【管子先生的Node之旅·1】JavaScript基礎(chǔ)復(fù)習(xí)(一)

類型

JavaScript 類型可以簡(jiǎn)單的分類兩組:基本類型和復(fù)雜類型旗芬。訪問(wèn)基本類型纳击,訪問(wèn)的是值,而訪問(wèn)復(fù)雜類型昧识,訪問(wèn)的是對(duì)值的引用钠四。

    //基本類型
    var a = 5;
    var b = a;
    b = 6;
    a; //=>5
    b; //=>6

    //復(fù)雜類型
    var a = ['hello', 'world!'];
    var b = a;
    b[0] = 'bey';
    a[0]; //=>bey
    b[0]; //=>bey

上述復(fù)雜類型的例子,ab 包含了對(duì)值的相同引用跪楞。因此缀去,當(dāng)通過(guò)b修改數(shù)組的第一個(gè)元素時(shí),a 相應(yīng)的值也改變了甸祭,也就是說(shuō) a[0] === b[0] 缕碎。

類型的判斷

要在 JavaScript 中準(zhǔn)確無(wú)誤的判斷變量的類型絕非易事。下面我們就通過(guò)幾個(gè)例子看看池户。

    //創(chuàng)建一個(gè)字符串
    var a = 'hello';
    var b = new String('world!');
    a + b; //=>hello world!

對(duì)a和b進(jìn)行 typeofinstanceof 操作

    typeof a == typeof b; //=>false
    a instanceof String; //=>true
    b instanceof String; //=>false

結(jié)果很意外咏雌,難道 b 不是字符串嗎凡怎?答案是這兩個(gè)家伙都是貨真價(jià)實(shí)的字符串。

    a.substr == b.substr; //=>true

并且使用 == 判斷時(shí)相等赊抖,而使用 === 判斷時(shí)結(jié)果并不相同统倒。

    a == b; //=>true
    a === b; //=>false

考慮到在類型定義會(huì)有差異性,建議在定義類型的時(shí)候避免 new 氛雪,使用直觀定義(列如: var a = [ ];)房匆。

注:條件表達(dá)式中有一些值會(huì)被判斷為 false:null、undefined 注暗、' '還有0坛缕。

下面我們?cè)賮?lái)看看另一種情況:

    //定義一些變量
    var a = null;
    var b = [];
    var c = {};

我們繼續(xù)對(duì)定義的變量進(jìn)行進(jìn)行 typeofinstanceof 操作

    typeof a == typeof b; //=>true
    typeof b == typeof c; //=>true
    a instanceof Object; //=>true
    b instanceof Object; //=>true
    c instanceof Object; //=>true

這個(gè)時(shí)候就不能直接通過(guò)對(duì)類型來(lái)判斷,這時(shí)要通過(guò)查看對(duì)象內(nèi)部 [[class]] 值:

    Object.prototype.toString.call(b) == Object.prototype.toString.call(c); //=>false
    Object.prototype.toString.call(b) == '[object Array]'; //=ture

instanceof Array 這種方法只適用于與數(shù)組初始化在相同的上下文中才有效捆昏。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赚楚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子骗卜,更是在濱河造成了極大的恐慌宠页,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寇仓,死亡現(xiàn)場(chǎng)離奇詭異举户,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)遍烦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門俭嘁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人服猪,你說(shuō)我怎么就攤上這事供填。” “怎么了罢猪?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵近她,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我膳帕,道長(zhǎng)粘捎,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任危彩,我火速辦了婚禮攒磨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恬砂。我一直安慰自己咧纠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布泻骤。 她就那樣靜靜地躺著漆羔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狱掂。 梳的紋絲不亂的頭發(fā)上演痒,一...
    開(kāi)封第一講書(shū)人閱讀 50,043評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音趋惨,去河邊找鬼鸟顺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛器虾,可吹牛的內(nèi)容都是我干的讯嫂。 我是一名探鬼主播,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼兆沙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼欧芽!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起葛圃,我...
    開(kāi)封第一講書(shū)人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤千扔,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后库正,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體曲楚,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年褥符,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了龙誊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡喷楣,死狀恐怖趟大,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布侮腹,位于F島的核電站黄绩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瞬铸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绽榛。 院中可真熱鬧,春花似錦婿屹、人聲如沸灭美。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)届腐。三九已至铁坎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間犁苏,已是汗流浹背硬萍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留围详,地道東北人朴乖。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像助赞,于是被迫代替她去往敵國(guó)和親买羞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

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

  • 轉(zhuǎn)載請(qǐng)聲明出處 博客原文 隨手翻閱以前的學(xué)習(xí)筆記雹食,順便整理一下放在這里畜普,方便自己復(fù)習(xí),也希望你有也有幫助吧 第一課...
    程序員poetry閱讀 12,646評(píng)論 13 94
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock閱讀 3,371評(píng)論 2 36
  • 前端07班 王語(yǔ)句JavaScript程序的執(zhí)行單位為行(line)婉徘,也就是一行一行地執(zhí)行漠嵌。一般情況下,每一行就是...
    ea203453e188閱讀 883評(píng)論 0 4
  • 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line)盖呼,也就是一行一行地執(zhí)行儒鹿。一般情況下,每一行就是一個(gè)語(yǔ)句几晤。 ...
    米塔塔閱讀 454評(píng)論 1 10
  • 內(nèi)存管理在Objective-C是一件簡(jiǎn)單又麻煩的事情约炎。簡(jiǎn)單是因?yàn)樗^的內(nèi)存管理不過(guò)是兩件事情:一塊內(nèi)存我們要用,...
    Miu七七閱讀 385評(píng)論 0 2