js-資料型別
ECMAScript中有五種資料型別(也稱為基本資料型別)
- Undefined
- Null
- Boolean
- Number
- String
和一種複雜的資料型別Object
如果我們想知道給定變數的資料型別,可以用typeof操作符
下面介紹一下它的用法
var myname = “Hello word”;
alert(typeof(myname)); //”String”
alert(typeof myname)); //”String”
alert(typeof 66); //”Number”
從上面的程式執行就可以看出來,typeof操作符的運算元可以是變數,也可以是一個數字字面量,程式中的圓括號不是一定要加
- Undefined型別
它的英文意思就是不明確的,為下定義的。不錯在ECMScript中,Undefined型別就只有一個值,即特殊的undefined,我們在使用var宣告變數但未對其加以初始化時,這個變數的值就是undefined
var myname;
alert(message == undefined); //true
二Null型別
Null型別同樣也只有一個值,null.
var money = null;
alert(typeof money); //object
這裡為什麼會返回一個”object”呢?原因是null 從邏輯角度上來看就是一個空物件指標
三Boolean
該型別有兩個字面值:True和False。我們可以對任何資料型別的值呼叫Boolean()呼叫Boolean()函式
四、Number型別
Number型別使用IEEE754格式來表示整數和浮點數值。
整數可以通過十進位制、八進位制、十六進位制的字面量來表示。其中八進位制字面量在嚴格模式下無效。
1.在表示浮點數值時,該數值中必須包含一個小數點,並且小數點後面必須至少有一位數字。小數點前面可以沒有整數。不推薦這種寫法。對那些極大或極小的數值,可以用e表示法(即科學計數法)表示的浮點數值表示。
2.ECMAScript能夠表示的最小數值儲存在Number.MIN_VALUE中,最大的數值儲存在Number.MAX_VALUE中。想要確定一個數值是不是有窮的,可以使用isFinite()函式
3.NaN
NaN即表示一個非數值,這個數值用於表示一個本來要返回數值的運算元未返回數值的情況。任何涉及NaN的操作都會返回NaN。NaN與任何值都不想等,包括NaN本身。我們可以通過isNaN()函式來確定這個引數是否“不是數值”。
4.數值轉換
我們可以利用Number()、parseInt()、parseFloat()
具體使用方法這裡不做詳細說明,介紹幾個例子
Number()使用方法
var num1=Number(“hhhh”); //NaN
var num2=Number(“ ”); //0
var num3=Number(“011”); //11 忽略其前導0
var num4=Number(true); //1
parseInt()使用方法
var num1 = parseInt(“1234blue”); //1234
var num2 = parseInt(“ ”); //NaN
var num3 = parseInt(“0xA”); //10 (十六進位制)
五、String型別
String型別用於表示由零或多個16為Unicode字串組成的字元序列,即字串。字串可以由雙引號(”)或者(‘)表示
- 字元字面量
String資料型別包含一些特殊的字元字面量,也叫轉義序列,用於表示非列印字元。如\n換行
我們可以通過length屬性來獲得字串的長度
- ECMAScript中的字串是不可變的,字串一旦建立,它們的值就不能改變。要改變某個變數儲存的字串,首先要銷燬原來的字串,然後再用另一個包含新值的字串填充該變數
如 var lang = “Java”;
Lang = lang +”Script”;
- 轉換為字串
把一個值轉換為字串有兩種方式,第一種是使用toString()方法(null和undefined值沒有這個方法)在不知道是不是null或undefined的情況下,還可以使用轉型函式String(),
這個函式能夠將任何型別的值轉換為字串
六、Object型別
ECMAScript中的物件其實就是一組資料和功能的集合。物件可以通過執行new操作符後跟要建立的物件的名稱來建立。如:
var obj = new Object();
可以省略後面的圓括號,但不推薦
在ECMAScript中,Object型別是所有它的例項的基礎。也就是說,Object型別所具有的任何屬性和方法也同樣存在與更具體的物件中。
Object的每個例項都具有下列屬性和方法
constructor:儲存著用於建立當前物件的函式。
hasOwnProperty(propertyName):用於檢查給定的屬性在當前物件例項中(而不是在例項的原型中)是否存在。其中引數名(propertyName)必須以字串形式指定
isPrototypeOf(object):用於檢查傳入的物件是否是當前物件的原型
propertyIsEnumerable(propertyName):用於檢查給定的屬性是否能夠使用for-in語句來列舉。
與hasOwnProperty()方法一樣,作為引數的屬性名必須以字串形式指定
toLocaleString():返回物件的字串表示,該字串與執行環境的地區對應
toString():返回物件的字串來表示
valueOf():返回物件的字串、數值或布林值表示。通常與toString()方法的返回值相同。