每一種計算機語言除了有自己的數據結構外,還具有自己所支持的數據類型。JavaScript跟傳統編程語言不同,它采用的是弱數據方式,也就是說一個數據不必首先做聲明,可以在使用或賦值時再確定其數據類型,當然也可以先聲明該數據類型。
JavaScript數據類型有2大分類:一是“基本數據類型”,二是“特殊數據類型”。
其中,基本數據類型包括以下3種:
特殊數據類型有3種:
我們這一節先來詳細講解JavaScript的基本數據類型。
數字(Number)是最基本的數據類型。在JavaScript中,和其他程序設計語言(如C和Java)的不同之處在於,它並不區別整型數值(int)和浮點型數據(float)。在JavaScript中,所有的數字都是由浮點型表示的。
整型數據指的是數據形式是十進制整數來的,整數可以為正數、0或負數。例如,“0、4、-5、1000”這些都是“整型數據”。
整型數據指的是整數,沒有小數的。浮點型數據是指帶有小數的數據。
浮點數還可以使用指數法表示,即實數後跟隨字母e或E,後面加上正負號,其後再加一個整型指數。這種計數法表示的數值等於前面的實數乘以10的指數次冪。
指數法表示的浮點數在實際開發中應用不多,大家看看就行了。
舉例:
1.2 0.123 5.12e11 //表示5.12乘以10的11次方 8.24E-12 //表示8.24乘以10的-12次方
注:數字型還包括十六進制和八進制,因為本教程是面對零基礎的初學者,因此不在此深入了解太多。對於這些計算機專業性的知識點,我們會直接跳過。
字符串是由Unicode字符、數字、標點符號等組成的序列,它是JavaScript用來表示文本的數據類型。程序中的字符串型數據是包含在單引號或雙引號中的,由單引號定界的字符串中可以含有雙引號,由雙引號定界的字符串中也可以含有單引號。
'我' ' 學習網'
"咦" "弄啥咧這是"
'我是"helicopter"'
"You can call me 'helicopter'"
舉例:
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> var str1="我愛'JavaScript'";//雙引號中包含單引號 var str2='我愛"JavaScript"'; //單引號中包含雙引號 var str3="我愛\"JavaScript\"";//雙引號中包含雙引號 var str4='我愛\'JavaScript\''; //單引號中包含單引號 document.write(str1+"<br/>"); document.write(str2+"<br/>"); document.write(str3+"<br/>"); document.write(str4); </script> </head> <body> </body> </html>
在浏覽器預覽效果如下:
分析:
從上面代碼執行結果我們可以看出,“單引號出現雙引號”或“雙引號出現單引號”時,不需要進行轉義。但是,“單引號內出現單引號”或“雙引號內出現雙引號”則必須進行轉義(轉義字符,我們會在下一節“JavaScript特殊數據類型”中詳細講解)
數值型和浮點型的數據值都有無窮多個,但是布爾型數據類型只有2個:真(true)和假(false)。0可以看作false,1可以看做true。
布爾值通常在JavaScript程序中用來比較所得的結果,例如:
n= =1
這行代碼測試了變量n的值是否和數值1相等。如果相等,比較的結果就是布爾值true,否則結果就是false。
布爾值通常用於JavaScript的控制結構(我們在後續章節會講解到)。例如,JavaScript的“if……else語句”就是布爾值為true時執行一個動作,而在布爾值為false時執行另一個動作。例如:
if(n==1) { n=n+1; } else { n=n-1; }
這段代碼檢測了n是否等於1。如果n等於1,則讓n增加1;如果n不等於1,則讓n減少1。
舉例:
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> var n1=Boolean("");//空字符串,返回false var n2=Boolean("a");//非空字符串,返回true var n3=Boolean(0);//數字0,返回false var n4=Boolean(1);//非0數字,返回true var n5=Boolean(-1);// 非0數字,返回true var n6=Boolean(null);//數值為null,返回false var n7=Boolean(undefined);//數值為undefined,返回false var n8=Boolean(new Object());//對象,返回true document.write("n1值為"+n1+"
"); document.write("n2值為"+n2+"
"); document.write("n3值為"+n3+"
"); document.write("n4值為"+n4+"
"); document.write("n5值為"+n5+"
"); document.write("n6值為"+n6+"
"); document.write("n7值為"+n7+"
"); document.write("n8值為"+n8); </script> </head> <body> <body> </html>
在浏覽器預覽效果如下:
分析:
對於有些代碼,初學者看不懂沒關系,待我們學了後續課程,再回來看就行了。曾經一位自學成才的諾貝爾獎獲得者說過,自學的時候很多東西看不懂,我們不要著急,等到我們學了後面的知識再回來看看,很多東西就會恍然大悟。