1. 程式人生 > >javascript變量和數據類型

javascript變量和數據類型

javascrip fin 不容易 paseint ase script min 頁面 太多的

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變量和數據類型