ecmascript有5種簡單的資料型別:undefined、null、boolean、number和string,還有1種複雜資料型別——object。
通過typeof可以檢測給定變數的資料型別,如:
var message = "some string";
alert(typeof(message));
執行結果如下:
1.undefined型別
使用var宣告變數但未對其進行初始化時,這個變數的值就是undefined。
對未初始化的變數和未宣告的變數執行typeof操作,都會返回undefined值,但是這兩者還是有區別的。
var
message;
//未宣告age變數
alert(message);
alert(age);
上述**中兩個alert執行結果如下:
!!對未經宣告的變數只能執行一項操作typeof。
2.null型別
null值表示乙個空物件指標,undefined值派生自null值,所以undefined==null會返回true。
3.boolean型別
呼叫轉型函式boolean()可以將任何資料型別轉換為boolean值。
var message = "some string";
var messageboolean = boolean(message);
alert(typeof(messageboolean));
執行結果如下:
!!在控制流語句(如if語句)中,自動執行相應的boolean轉化。如:
var message = "some string";
if(message)
執行結果如下:
4.number型別
ecmascript能夠表示的最小數值儲存在number.min_value(一般為5e-324),最大值儲存在number.max_value(一般為1.7976931348623157e+308)。
如果某個值超過了範圍,會被自動轉換成特殊的infinity值,具體為負無窮(-infinity)和正無窮(infinity)。
nan表示非數值,是乙個特殊的值,任何涉及nan的操作都會返回nan(如nan/10),並且nan和任何值都不相等,包括nan本身。
alert(nan == nan); //返回false
isnan()函式用來判斷某個值是否是nan。
數值轉換:
三種方式:number()、parseint()、parsefloat(),第一種可用於任何資料型別,第二種和第三種則只針對將字串轉為數值。
幾個典型例子如下:
var num1 = number("hello word!"); //nan
var num2 = number(""); //0
var num3 = number("0000011"); //11
var num4 = number(true); //1
var num1 = parseint("123abc"); //123
var num2 = parseint(""); //0
var num3 = parseint("0xa"); //10(十六進製制數)
var num4 = parseint(22.5); //22
var num5 = parseint("070"); //56(八進位制數)
var num6 = parseint("10",8); //8(按八進位制解析)
var num1 = parsefloat("123abc"); //123
var num3 = parsefloat("0xa");//0(十六進製制的字串始終會被轉換成0)
var num4 = parsefloat(22.5);
var num4 = parsefloat(22.5
.34);
5.string型別ecmascript中的字串是不可變的,即字串一旦建立,若改變首先要銷毀原來的字串,再用乙個新值填充改變量。
轉換成字串的兩個方法:tostring()和string()
除null,undefined以外的型別都有tostring方法,其中,數值的tostring方法,可以傳遞乙個引數:輸出數值的基數。
var num = 10;
alert(num.tostring()); //
"10" 預設十進位制
alert(num.tostring(2)); //
"1010" 二進位制
alert(num.tostring(8)); //
"12" 八進位制
alert(num.tostring(16));//
"a" 十六進製制
string()方法適用於任何型別,首先,如果值有tostring方法,則呼叫tostring方法,如果值是null,則返回「null」,如果是undefined。則返回「undefined」。
6.object型別
object的每個例項都具有如下方法:
*constructor:建構函式(var o = new object() )
*hasownproperty(propertyname):檢查給定屬性是否在當前物件例項中
*isprototypeof(object):檢查傳入物件是否是當前物件的原型
*propertyisenumerable(propertyname):檢查給定屬性是否能夠使用for-in屬性來列舉
*tolocalestring():返回物件字串表示,返回結果與執行環境地區對應
*tostring():返回物件字串表示
*valueof():通常與tostring方法的返回值相同
!!由於在ecmascript中object是所有物件的基礎,因此所有物件都具備這些基本屬性和方法。
JavaScript 資料型別
變數 宣告區域性變數 varmessage 宣告全部變數 message typeof 例如 var message some string alert typeof message string alert typeof message string alert typeof 95 number ...
Javascript資料型別
ecmascript中有5種簡單資料型別 也稱為基本資料型別 1.undefined 該型別只有乙個值,即undefined。在使用var宣告但未初始化時,這個變數就是undefined 2.null 該型別只有乙個值,即null。null undefined 3.boolean 4.number ...
JavaScript資料型別
undefined派生於null,因此在使用 進行比較時會返回true 沒有必要將變數值顯示宣告undefined 宣告空物件時應將其值賦值為nullundefined與null的關係 3 boolean true為真,false為假 true不一定 1,false不一定 0 使用boolean 進...