1.ECMAScript中的5種簡單數(shù)據(jù)類型
Undefined
:只有一個值undefined
涎拉,表示變量只被聲明晾咪,沒有被初始化涎才,也就是有這個指針鞋既,但指針沒有指向任何空間
var mes;
console.log(typeof mes); //undefined
Null
:只有一個值null
力九,表示一個空對象指針,因此用typeof
檢測null
值時返回object
邑闺;如果定義的變量將來準備用于保存對象跌前,那么最好將該變量初始化為null
Boolean
:有2個值,分別是true
和false
陡舅,常用于條件測試中
Number
:整數(shù)抵乓、浮點數(shù)、十六進制等都統(tǒng)一為該類型靶衍,需要注意的是Number類型是有范圍的灾炭;還有NaN
表示非數(shù)值(Not a Number),這個數(shù)值表示一個本來要返回數(shù)值的操作數(shù)未返回數(shù)值的情況摊灭;任何涉及NaN
的操作都返回NaN
咆贬;NaN
與任何值都不相等,包括本身
String
:由零或多個16位Unicode字符組成的字符序列帚呼;可以用單引號或雙引號表示掏缎,沒有區(qū)別,匹配即可煤杀;任何字符串的長度都可以通過其length
屬性獲得
//ECMAScript中的字符串是不可變的
//要改變某個變量保存的字符串眷蜈,首先要銷毀原來的字符串,然后再用另一個包含新值的字符串填充該變量
var mes = 'Java';
mes = mes + 'Script';
console.log(mes); //JavaScript
//首先創(chuàng)建一個能容納10個字符的新字符串
//然后在這個字符串中填充'Java'和'Script'
//最后銷毀原來的字符串'Java'和'Script'
String類型包含一些特殊的字符字面量(轉(zhuǎn)義字符):
\n: 換行
\r: 回車
\t:水平制表符
\\:\
2.ECMAScript中的復雜數(shù)據(jù)類型
Object
:JS的核心概念沈自,JS的所有數(shù)據(jù)都可以被視為對象酌儒,即一種無序的數(shù)據(jù)集合,由若干個“鍵值對”(key-value)構(gòu)成枯途,key我們稱為對象的屬性忌怎,value可以是任何JavaScript類型,甚至可以是對象
3.typeof
和instanceof
的作用和區(qū)別
typeof
:一個操作符酪夷;用于獲取一個變量的類型榴啸,一般只能返回如下結(jié)果:"number","boolean","string","function","object","undefined"
;但是當遇到Array,Null
等特殊對象時晚岭,typeof
只會返回"object"
鸥印,這就是typeof
的局限性
typeof(1); //"number"
typeof("2"); //"string"
typeof(new Object()); //"object"
instanceof
:用于判斷某個變量是否是某個對象的實例,返回值為布爾值坦报,instanceof
的內(nèi)部機制是:每個實例都有proto
隱藏屬性,instanceof
的時候會拿實例的proto
屬性與構(gòu)造函數(shù)的prototype
比較是否相同库说,因此寫法也和typeof
不同
var a = [1,2,3];
var b = function(){};
console.log(a instanceof Array); //true
console.log(b instanceof Function); //true
4.數(shù)值轉(zhuǎn)換
Number()
:可用于任何數(shù)據(jù)類型;規(guī)則相當復雜而且不合理片择,幾乎不使用
parseInt()
和parseFloat()
:用于將字符串轉(zhuǎn)換成數(shù)值潜的;
parseInt()
和parseFloat()
規(guī)則如下:
忽略字符串前面的空白字符,找到第一個非空白字符
如果第一個字符不是負號(-)或者數(shù)字返回NaN(轉(zhuǎn)換空字符串返回NaN)
如果是繼續(xù)解析字管,直到非數(shù)字字符為止
0開頭會當做八進制夏块,0x開頭會當做十六進制疏咐,但是可以指定第二個參數(shù)指定基數(shù)
parseInt()
和parseFloat()
區(qū)別:
字符串中第一個小數(shù)點是有效的
始終忽略前面的零
parseInt(" "); //NaN
parseInt("1234blue"); //1234
parseInt("22.5"); //22
parseFloat("22.5"); //22.5
parseFloat("0909.5"); //909.5
最后編輯于 :2017.12.04 05:26:37
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者