[toc]
## JavaScript數據類型
可編程語言的基本特征之一就是對常用數據類型的支持。這些數據類型可以用可編程語言來表示和操作。
按照JavaScript的語法規范,它允許有如下三類基礎數據類型:
1. 數值類型:比如 123,120.50 等。
2. 字符串類型:比如“This text string”。
3. 布爾類型:比如 true or false。
JavaScript也支持另外兩個常用類型:null 和 undefined,這兩個類型均僅限定一個單一的值。
除了上述的基礎數據類型,JavaScript 也支持符合數據類型,我們稱之為“對象”。我們會在其他章節中學習“對象”的具體內容。
> 注意:JAVA語言并區分整數類型與浮點類型。JavaScript 中的數值均使用浮點值來表示。同時,按照 IEEE754 標準,JavaScript 用64位浮點格式來表示數。
## JavaScript變量
和其他可編程語言相同,JavaScript 也有“變量”的概念。“變量”可以認為是有名字的容器。你可以將數據置于這些容器中,然后通過容器的名稱就可以知道數據的類型。
值得注意的是,在 JavaScript 編程過程中,必須先聲明一個變量,這個變量才能被使用。
此外,變量是通過 “var” 來聲明的,例子如下:
~~~
<script type="text/javascript">
<!--
var money;
var name;
//-->
</script>
~~~
使用 “var” 關鍵詞也可以同時聲明多個變量。例子如下:
~~~
<script type="text/javascript">
<!--
var money, name;
//-->
</script>
~~~
變量初始化就是在一個變量中存儲一個值。
變量初始化可以在創建變量或者再需要使用變量時進行。
比如,需要創建一個名叫 money 的變量,然后賦值 2000.50.
或者直接在初始化的時候對變量進行賦值:
例子如下:
~~~
<script type="text/javascript">
<!--
var name = "Ali";
var money;
money = 2000.50;
//-->
</script>
~~~
> 注意: “var” 關鍵字僅能用于變量的聲明或初始化。同一個 HTML 網頁中,同一變量名稱不能聲明多次。
JavaScript 是一種無類型語言。這就是說, JavaScript 變量可以存儲任何類型的值。與其他語言不同的是,我們不需要在變量聲明階段告訴變量其要存儲的數據類型是什么。
變量中存儲的數據類型在程序執行階段可以被改變,這些操作都是對編程人員透明的。
## JavaScript變量作用域
一個變量的作用域就是該變量定義后在程序中的作用范圍。JavaScript 變量有兩個變量作用域。
1. 全局變量:全局變量具有全部整體范圍的作用域,這意味著它可以在 JavaScript 代碼任何地方定義。
2. 局部變量:局部變量僅在定義它的函數體內可以訪問到。函數參數對于函數來說就是局部變量。
在函數體內部,局部變量可以與全局變量同名,此時是局部變量在起作用。如果局部變量或者函數參數與全局變量同名,那么此時全部變量會被隱藏到,并不會起作用。
例子如下:
~~~
<script type="text/javascript">
<!--
var myVar = "global"; // Declare a global variable
function checkscope( ) {
var myVar = "local"; // Declare a local variable
document.write(myVar);
}
//-->
</script>
~~~
該例子產生如下結果:
~~~
Local
~~~
## JavaScript變量名稱
JavaScript 中變量的命名規則如下:
1. 不能使用 JavaScript 中的保留關鍵字來命名變量。這些保留關鍵字會在下一節中介紹。比如 break 或 boolean,這些命名變量是無效的。
2. JavaScript 變量名稱不能以數字 (0-9) 開頭,只能以字母或下劃線來命名變量。比如 123tes t就是無效的變量名。但是, _123 就是有效的變量名。
3. JavaScript 變量名稱對大小寫敏感。比如,Name 和 name 是兩個不同的變量。
## JavaScript保留的關鍵字
下面是 JavaScript 中的保留關鍵字。他們不能用來命名 JavaScript 中的變量、行數、方法、循環標簽或任何對象名稱。
| | | | | | | | | | |
| -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
|abstract|else|instanceof|switch|
|boolean|enum|int|synchronized|
|break|export|interface|this|
|byte|extends|long|throw|
|case|FALSE|native|throws|
|catch|final|new|transient|
|char|finally|null|TRUE|
|class|float|package|try|
|const|for|private|typeof|
|continue|function|protected|var|
|debugger|goto|public|void|
|default|if|return|volatile|
|delete|implements|short|while|
|do|import|static|with|
|double|in|super||