Js基本概念(二)
1. ECAMScript的資料型別
基本資料型別:Undefined、Null、Boolean、Number、String
複雜資料型別:Object
0) typeof 操作符
typeof 操作符(不是函式)的運算元可以是變數,也可以是數值字面量。 typeof(message) 或者 typeof message。可能的結果如下:
undefined-----值未定義
boolean-------值是布林值
string----------值是字串
number-------值是數值
object---------值是物件或null
function-------值是函式
1)Undefined 型別
該型別只有一個值:undefined----指在使用var宣告變數但未對其初始化時該變數的值。
2)Null 型別
該型別只有一個值:null----指一個空物件指標。
var o1 = null;
typeof o1 ----- object
注意:如果一個變數將來用來儲存物件,那麼最好將該變數初始化為null
3)Boolean 型別
該型別的值是:true false
ECMAScript中所有型別的值都有與這兩個Boolean值等價的值。可以用Boolean()轉型函式轉換
流控制語句(如if語句)會自動執行相應的Boolean()轉換
4)Number 型別
浮點數:儲存浮點數的記憶體空間是儲存整數的兩倍,所以ECMAScript會將(1.或者1.0)這樣的浮點數值轉換成整數值。
表示方式:3.12e5----312000 3.12e-2----0.0312
數值範圍:最小值---Number.MIN_VALUE 最大值---Number.MAX_VALUE 如果超過了Javascript的範圍,這個超過的數值會自動轉換成特殊的Infinity或者-Infinity。要判斷一個數是不是位於最小數和最大數之間,用 isFinite(引數) 函式。
NaN:非數值,用於表示本來要返回數值的運算元未返回數值的情況。isNaN()函式用來判斷引數是否不是數值----他會將引數轉換成數值如 "10" 會變成10 true會變成1 而 "blue" 不能被轉換成數值,isNaN()會返回true。
注意:NaN != NaN
數制轉換:以下,三個函式可以將非數值轉換成數值
① Number() 適用於任何資料型別,轉換規則:
Boolean:ture-1 false-0
null--0 undefined--NaN
字串:若只包含數字,就將其轉換成十進位制數 011--11
若包含有效的浮點格式,會將其轉化成浮點數值
若包含有限的十六進位制格式,如0xf,會將其轉換成相同大小的十進位制整數值
若字串為空(""),會將其轉換成0
若字串包含除上述格式之外的字元,就轉換成NaN
② parseInt() :從字串中第一個不是空字元的字元開始,若空字串或者第一個非空字元不是數字字元或者負號,就返回NaN,否則會解析第二個字元。一直解析到非數字字元為止。 22.5---22,因為.不是有效數字字元。可以指定引數來說明解析的是幾進位制數。 parseInt("AF",16)----175
③ parseFloat():同上,但是他只解析10進位制,因此16進位制永遠是被轉換成0----0xf---0
5)String 型別
字串的特點是一旦建立,他們的值就不能改變。要改變的做法是:銷燬原來的字串,再用另外一個包含新值的字串填充該變數。
轉換為字串的方法:
① toString() 方法 ------ 數值,布林值,物件,字串值都可以呼叫該方法。null和undefined不可以。該方法可以指定一個引數,該引數可以指明轉換成幾進位制格式的字串值。
String() 函式可以將任何型別的值轉換為字串,若呼叫該函式的值有toString()方法,則呼叫toString()方法,返回相應的結果。如果值為null,則返回"null" 。如果值為undefined,則返回"undefined" 。
② 將某個值用 + 與一個字串相連。
6)Object 型別
在ECMAScript中,物件就是一組資料和功能的集合。建立Object型別的例項併為其新增屬性或方法,就可以建立自定義物件。如 var o = new Object();