6大分類及其特點
一,JS基本資料型別:Undefined, Null, Boolean, Number, String, Object六種。
1,Undefined:: 該型別只有一個值:undefined.
1) 一個變數宣告但未初始化,值就是 undefined,注意大小寫。
e.g:
var msg;
alert(msg); //undefined
2) 一個變數未宣告,直接使用會報錯,
e.g::
alert(newMsg); //Uncaught ReferenceError: newMsg is not defined
注意:它們呼叫 typeof 都返回 undefined.
2,Null:該型別只有一個值:null,它是一個空物件指標。
1) typeof(null) 會返回 "object"
2) undefined是從null繼承,所以 alert(null == undefined) 返回true.
3,Boolean:只有兩個值:true, false 注意全是小寫。
內建函式:Boolean() :將指定值轉換成布林值。轉換規則以示例給出:
1)Boolean(null); // false
2) Boolean(""); // false Boolean("hello,world"); //true
3) Boolean(undefined); // false
4) Boolean(0); // false Boolean(1);//true Boolean(071); //8進位制,true
4,Number: 數值型,包括整型和浮點型。
內建函式:Number(), parseInt(), parseFloat(). isFinite(); isNaN();
其中 parseInt()用於將字串轉換為整型,並可以指定進位制。parseFloat()僅針對十進位制進行轉換。
例子:
1)parseInt(011); // 9,自動識別為8進位制,並轉換為10進位制。
parseInt(11, 8); // 9 ,指定11為8進位制數,然後轉換為10進位制。
parseInt("af", 16); 或 parseInt("0xaf"); // 175 ,都是16進位制。
parseInt("af"); // NaN,注意,NaN也是Number型別,typeof 返回 number。
alert(NaN == NaN); //false,NaN和任何值都不相等。
alert(10/0);// Infinity。無窮大。
alert(Number.MAX_VALUE); //最大值, 1.797E308
alert(Number.NEGATIVE_INFINITY);// -infinity 負無窮大。
ifFinite(10/0); // false,說明不是有窮的。
var a=0.1, b =0.2; alert(a+b); //0.300000000000004
alert(a+b == 0.3); // false,浮點計算的誤差,基於IEEE754的浮點計算都有此問題。
5,String 型別:
內建函式:toString();
e.g:
1) alert("abc" == "abc"); // true
2) alert("hello".length);
3)var msg; alert(msg.toString()); //報錯,不能在undefined上呼叫toString()
4) var obj=null; alert(obj); //null
5) var num=10; alert(num.toString(2)); //1010,轉換成二進位制輸出。
6,Object型別:
內建函式和屬性:
constructor(); hasOwnProperty(pName); isPrototypeOf(pVal); propertyIsEnumerable(pName); toString(); valueOf();