javascript變量和數據類型
1.JavaScript變量
javascript的變量是松散類型的(弱類型),也就是說一個變量可以用來保存任何類型的數據,每個變量僅僅是用來保存值的占位符。變量的聲明用var操作符來定義,如 var message;也可以多個變量一起定義,如var a,b,c;用逗號隔開每個變量。
var message ;
var message;//message為初始化,值為undefined message=12;//message值為12; message="hello";//message 值為hello; message=["hello",12];//message值為數組
上面的代碼解釋了JavaScript變量為松散類型的,可以有不同類型的值。若在定義變量的時候不用關鍵字var,則該變量為全局變量,不建議使用太多的全局變量,不容易管理,造成代碼混亂;同時太多的全局變量會占用大量內存,因為全局變量直到頁面被銷毀,全局變量才被銷毀。
a=12;//此時a為全局變量
2.JavaScript數據類型
undefined類型
undefined類型是只有一個特殊的值undefined。一個變量被聲明,但是沒有被賦值,則值為undefined。如
var name; console.log(name==undefined);//輸出true
上面的定義等價於 var name=undefined,undefined是一個特殊的值。需要說明的是undefined的變量,與未定義的變量是有區別的。未定義的變量不能直接使用,會產生異常。
var name; console.log(name==undefined);//輸出true console.log(sex);//報錯, sex is not defined
當然,使用typeof獲取變量的值類型時候,未定義的變量的值和已經定義(未初始化)變量的值都為“undefined”。
var name; console.log(name==undefined);//輸出true console.log(typeof sex);//輸出‘undefined‘ console.log(typeof name);//輸出‘undefined‘
Null數據類型
Null數據類型也是只有一個值的數據類型,這個值是null。從邏輯角度看,null表示一個空指針。typeof null 會返回“object”;
var age=null; console.log(typeof age);//輸出‘undefined‘
Boolean類型
Boolean類型在JavaScript中使用非常多的數據類型,它包含兩個值true和false。true不一定是數字值1,false也不一定是數字值0。
數據類型 |
轉換為true |
轉換為false |
Boolean |
true |
false |
String |
非空字符串 |
“” |
Number |
任何非零數字值(包括無窮大) |
0和NaN |
Object |
任何對象 |
null |
Undefined |
n/a |
undefined |
Nunber類型
Number類型用來表示整數和浮點數。在 JavaScript 中,整數值和浮點值之間沒有區別,JavaScript 數字可以是兩種類型中的任意一種。
number數據類型可以用來表示十進制的數,如var num=1; var num1=1.2;除十進制外,number還可以表示八進制以及十六進制的整數。八進制的值第一位用0來表示,後面可以用0-7的字面值來表示,如果字面值超出了範圍,則0被忽略,當十進制來解析。
var num1 = 023; var num2 = 079; var num3=08; console.log(num1);//19 有效的八進制值,輸出19 console.log(num2);//無效的八進制值,輸出79 console.log(num3);//無效的八進制值,輸出8
十六進制字面值前面兩位是0x,後跟任何十六進制數字(0-9、A-F),字母可以為小寫表示10-15;
var liu1 = 0xaf; var liu2 = 0x23; console.log(liu1);//175 console.log(liu2);//35
十六進制與八進制在進行計算的時候,JavaScript會將八進制與十六進制轉換為十進制之後,再進行計算。
八進制轉十進制方法:首先去掉前面的0,然後按權相加法,即將八進制每位上的數乘以位權,然後將得出來的數再加在一起。如023=2*Math.pow(8,1)+3*Math.pow(8,0)=19;
十六進制轉十進制方法:首先去掉0x,然後將字母轉換為數字進行權相加法。如0xaf=10*Math.pow(16,1)+15*Math.pow(16,0)=175;
JavaScript能表示的最小值保存在Number.MIN_VALUE中,值為5e-324,最大值保存在Number.MAX_VALUE中,值為1.7969e+308。如果值超出範圍,則轉換為Infinity。
NaN,表示非數據,NaN與任何值不相等,isNaN()函數用來判斷參數是否是非數值。
console.log(isNaN(NaN));//true console.log(isNaN(10));//false console.log(isNaN(0));//false console.log(isNaN("8a"));//true console.log(isNaN("67"));//false
數值轉換,
parseInt(),parseFloat();
paseInt用於字符串轉換為數字。可以轉換十進制、八進制、十六進制。從第一個字符串解析,直到解析到非數字的字符。如果第一個就是非數字的字面值,則為NaN
console.log(parseInt("023",8));//輸出19 console.log(parseInt("83a2"));//輸出83 console.log(parseInt("a83a2"));//輸出NaN
javascript變量和數據類型