javaScript基本數(shù)據(jù)類型

我們知道JavaScript有ECMAScript离福、DOM、BOM三部分組成,下面一幅圖可以簡(jiǎn)單明了的說(shuō)明JavaScript的組成。


注:ECMAScript(European Computer Manufacturers Association)是由一種Ecma國(guó)際前身為歐洲計(jì)算機(jī)制造商協(xié)會(huì)制定的標(biāo)準(zhǔn)蝗柔。簡(jiǎn)單來(lái)說(shuō),ECMAScript不是一門(mén)語(yǔ)言民泵,而是一個(gè)標(biāo)準(zhǔn)癣丧。
ECMAScript中有5種簡(jiǎn)單數(shù)據(jù)類型,也稱為基本數(shù)據(jù)類型:Undefined栈妆、Null胁编、Boolean、String鳞尔、Number嬉橙。學(xué)習(xí)這些之前,需要先了解typeof操作符寥假。
typeof的作用是判斷給定數(shù)據(jù)的類型市框。具體用法見(jiàn)下面代碼:

//1: typeof(直接量/變量)
console.log(typeof ("哈哈哈")); // string
console.log(typeof(13)); // number

// 2: typeof 直接量/變量
console.log(typeof "你好"); // string
console.log(typeof 23);  // number

一、Undefined類型

Undefined類型只有一個(gè)值undefined糕韧,如果一個(gè)變量只有聲明枫振,沒(méi)有賦值,那它的結(jié)果就是undefined萤彩,頁(yè)面上不會(huì)報(bào)錯(cuò)。
對(duì)于尚未聲明的對(duì)象雀扶,只能執(zhí)行一項(xiàng)操作杖小,即使用typeof操作符檢測(cè)其數(shù)據(jù)類型。

<script type="text/javascript">
    // 如果一個(gè)變量只有聲明愚墓,沒(méi)有賦值予权,那它的結(jié)果就是undefined,頁(yè)面上不會(huì)報(bào)錯(cuò)
    var a;
    console.log(a); // undefined
    console.log(typeof a); // undefined

    var b
    console.log(typeof b); // undefined 
    </script>

結(jié)果表明:對(duì)未初始化和未聲明的變量執(zhí)行typeof操作都返回了undefined值浪册。

二扫腺、Null類型

Null類型:空對(duì)象,也是只有一個(gè)值:null议经。從邏輯角度講斧账,null值表示一個(gè)空對(duì)象指針,而這也正是使用typeof操作符檢測(cè)其類型返回"object"的原因煞肾。undefined是派生自null咧织,所以,它們相等性測(cè)試結(jié)果返回true籍救。它有一個(gè)很常用的用處:如果定義的變量準(zhǔn)備在將來(lái)用于保存對(duì)象习绢,那么最好將該變量初始化為null。

<script>
    console.log(typeof null); // object

    var a = null;
        if (a) {
            alert("true");
        } else {
            alert("false");
        }  // 返回false

        if (null == undefined) {
            console.log("undefined值是派生自null")
        }
</script>

三、Boolean類型

Boolean類型有兩個(gè)字面值闪萄,分別是true梧却、false。雖然它只有兩個(gè)值败去,但是任何類型都可以轉(zhuǎn)換成Boolean,數(shù)據(jù)類型及其轉(zhuǎn)換規(guī)則如下圖:



總結(jié)出來(lái)即是:除了false放航、""、NAN圆裕、0广鳍、Undefined、Null轉(zhuǎn)換為Boolean的時(shí)候結(jié)果是false吓妆,其余都是true赊时。

四、String類型

1行拢、String:即字符串祖秒,簡(jiǎn)單來(lái)說(shuō)就是用引號(hào)引起來(lái)的文本,可以是單引號(hào)舟奠,也可以是雙引號(hào)竭缝。字符串長(zhǎng)度用length表示。ECMAScript中的字符串是不可變的鸭栖,也就是說(shuō)歌馍,字符串一旦創(chuàng)建握巢,它的值就不能改變晕鹊,如果改變了字符串,編譯不會(huì)出現(xiàn)問(wèn)題暴浦,但是內(nèi)存會(huì)出現(xiàn)問(wèn)題溅话,特別影響性能。
要改變某個(gè)變量保存的字符串歌焦,首先要銷毀原來(lái)的字符串飞几,然后再用另一個(gè)包含新值的字符串填充該變量,例如:
var str = "12"; str = str + "ab";

2独撇、字符字面量:String類型包含一些特殊的字符字面量屑墨,也叫轉(zhuǎn)義字符,比如\n表示換行纷铣、\b表示退格卵史、\表示斜杠、'表示單引號(hào)搜立、''表示雙引號(hào)等以躯。如果字符串中,包含雙字節(jié)字符,length屬性可能不會(huì)精確地返回字符串中的字符數(shù)目忧设。

3刁标、如果字符串中出現(xiàn)引號(hào):

  • 如果字符串中出現(xiàn)雙引號(hào),可以把字符串的引號(hào)改成單引址晕,反之膀懈,亦然
  • 使用轉(zhuǎn)義符
<script>
        // 括號(hào)里面直接用的數(shù)據(jù),叫做直接量
        alert("123");
        alert("1abv");
        alert('你好');
        // alert(abc); // 不是字符串,控制臺(tái)會(huì)出現(xiàn)報(bào)錯(cuò)

        alert("我說(shuō):“你好”"); //不會(huì)出錯(cuò)
        // alert("you say:"today is a good day"");  // 會(huì)報(bào)錯(cuò)谨垃,可以改成如下
        alert('you say:"today is a good day"');

        alert("you say: \n \'hello\ \"world\" \b \"你好\"");
    </script>

五吏砂、Number類型

1、Number類型即是數(shù)值乘客,分為浮點(diǎn)數(shù)值和整數(shù)數(shù)值狐血,這里不再做過(guò)多說(shuō)明,下面講一下數(shù)值范圍易核。
由于內(nèi)存限制匈织,ECMAScript并不能保存所有的數(shù)值類型,最小值保存在Number.MIN_VALUE,最大值保存Number_MAX_VALUE中牡直,如果超過(guò)范圍缀匕,會(huì)被自動(dòng)轉(zhuǎn)換成特殊的inFinity(正無(wú)窮)和-inFinity(負(fù)無(wú)窮)∨鲆荩可以用isFinite()函數(shù)來(lái)判斷數(shù)值是否在最大值和最小值之間乡小。

<script>
        console.log(isFinite(123)); // true
        var s = Number.MAX_VALUE + Number.MAX_VALUE;
        console.log(isFinite(s)); // false
        console.log(maxSum); // infinity(正無(wú)窮)

</script>

2、NaN
NaN(not a number)即非數(shù)值饵史,是number的一種满钟,用來(lái)表示數(shù)值的一種不正常的狀態(tài),一般情況下胳喷,會(huì)在數(shù)值計(jì)算錯(cuò)誤的時(shí)候出現(xiàn)湃番,它特殊到自己不等于自己。判斷當(dāng)前的數(shù)據(jù)是否是NaN的函數(shù)isNaN(),參數(shù)可以是任何數(shù)值吭露,該函數(shù)可以幫確定這個(gè)參數(shù)是否“不是數(shù)值”吠撮,它在接到一個(gè)參數(shù)后,會(huì)嘗試將這個(gè)值轉(zhuǎn)換為數(shù)值讲竿,泥兰,函數(shù)返回false。某些不是數(shù)值的值會(huì)直接轉(zhuǎn)換為數(shù)值题禀,而不能被轉(zhuǎn)換成數(shù)值的參數(shù)鞋诗,會(huì)導(dǎo)致這個(gè)函數(shù)返回true。


<script>
         console.log(isNaN(NaN));   // true
         console.log(isNaN(10));    // false(10是一個(gè)數(shù)值)
         console.log(isNaN("10"));  // false(可以被轉(zhuǎn)換成數(shù)值10)
         console.log(isNaN(true));  // false (可以被轉(zhuǎn)換常數(shù)值1)
         console.log(isNaN(false)); // false(可以被轉(zhuǎn)換成數(shù)值0)
         console.log(isNaN("你好")); // true(不能被轉(zhuǎn)換成數(shù)值)
</script>

六投剥、String师脂、Number使用注意

  • 如果兩個(gè)字符串用+相連,那加號(hào)的作用是連接這兩個(gè)字符串
  • 如果兩個(gè)數(shù)值用+相連,那么加號(hào)的作用是兩個(gè)數(shù)值相加
  • 如果加號(hào)連接的兩個(gè)直接量中有一個(gè)是字符串吃警,那么作用就是連接
<script>
         console.log("我+sayHi"); // 我+nihai
         console.log("我"+"sayHi"); // 我nihai 

         var a = 123;
         var b = "123";
         console.log(a + a + a + b); // string "369123"
         console.log(b + a + a + a); // string "123123123123"
</script>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末糕篇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子酌心,更是在濱河造成了極大的恐慌拌消,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件安券,死亡現(xiàn)場(chǎng)離奇詭異墩崩,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)侯勉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)鹦筹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人址貌,你說(shuō)我怎么就攤上這事铐拐。” “怎么了练对?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵遍蟋,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我螟凭,道長(zhǎng)虚青,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任螺男,我火速辦了婚禮棒厘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘烟号。我一直安慰自己绊谭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布汪拥。 她就那樣靜靜地躺著,像睡著了一般篙耗。 火紅的嫁衣襯著肌膚如雪迫筑。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天宗弯,我揣著相機(jī)與錄音脯燃,去河邊找鬼。 笑死蒙保,一個(gè)胖子當(dāng)著我的面吹牛辕棚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼逝嚎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼扁瓢!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起补君,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤引几,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后挽铁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體伟桅,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年叽掘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了楣铁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡更扁,死狀恐怖民褂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疯潭,我是刑警寧澤赊堪,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站竖哩,受9級(jí)特大地震影響哭廉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜相叁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一遵绰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧增淹,春花似錦椿访、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至拳喻,卻和暖如春哭当,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冗澈。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工钦勘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人亚亲。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓彻采,卻偏偏與公主長(zhǎng)得像腐缤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子肛响,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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