**變量**
JavaScript的變量是松散類型的,他不像JAva那樣具有很嚴格的定義規范,所謂松散類型就是可以用來保存任何類型的數據,換句話說,每個變量僅僅是保存值的一個引用而已。定義變量時使用var操作符,后跟變量名,這個變量可以存儲任何值,像這種未經定義的變量,會保存一個特殊的值-undefined,當我們定義了變量的值之后,初始化始也只是為這個變量賦了一個值而已;例如下面的:
~~~
<script>
var string="hello,world";
alert(string);
</script>
~~~
這段代碼只是在初始化的時候為他賦了一個值而已,并不會根據類型而把他標注為字符串類型的;另外要注意的是,我們再聲明變量的時候也可以不使用var 關鍵字,這樣也不會出錯,但是并不推薦,我們也可以在修改變量的同時修改值的類型,但是也不推薦;
~~~
<script>
string="hello,world";
string="123"
alert(string);
</script>
~~~
**數據類型**
在ECMAScript中有五種基本簡單數據類型,(我們的java有八大基本數據類型。。)分別是:undefined,Null,Boolean,number,String。還有一種復雜數據類型-Object,object本質上是一組無序的名值對組成的。ECMAScript不支持任何創建自定義類型的機制,而所有值最終都將是上述6種數據類型之一。乍一看,好像只有6中數據類型不足以表示所有數據;但是,由于ECMAScript數據具有動態性,因此的確沒有再定義其他數據類型的必要了。
我們可以使用typeof操作符來檢驗返回值的類型。
~~~
<script>
var test1;
alert(typeof test1); //undefined 如果這個值未定義;
var test2=true;
alert(typeof test2); //boolean布爾值;
var test3="abc";
alert(typeof test3); //string 如果這個值是字符串;
var test4=123;
alert(typeof test4); //number 如果這個值是數值;
var test5=new Object();
alert(typeof test5); //object如果這個值是對象;
function test6(){};
alert(typeof test6); //function 函數類型,聲明的時候不要帶var
</script>
~~~
**Undefined類型:**
Undefined類型只有一個值,即特殊的undefined,在使用var聲明變量但未對其加以初始化時,這個變量的值就是undefined;這個跟java有所不同;
**Null類型:**
Null類型是第二個只有一個值的數據類型,這個特殊的值是null,從邏輯角度來看,null值表示一個空對象指針,而這也正是使用typeof操作符檢測null值會返回“object”的原因,如果定義的變量準備在將來用于保存對象,那么最好將該變量初始化為null,而表示其他值。這樣一來,只要直接檢查null值就可以知道對應的變量是否保存了一個對象的引用;
實際上undefined值是派生自null值的;即undefined==null --true;
**Boolean類型:**
Boolean類型是ECMAScript中使用的最多的一種類型,該類型只要兩個字面值:true和false,雖然Boolean類型的自面值只要兩個,但是JavaScript的所有類型的值都可以轉換為Boolean值;使用Boolean();
~~~
var test1="Hello world!";
if(Boolean(test1)){
alert(test1);
};
~~~
這一章,我們了解了JS的基本數據類型,下一次再深入去理解一下數值型和Object這兩個特殊的類型吧;
- 前言
- javascript基礎與定義
- JavaScript變量
- JavaScript變量二(數據類型,Number,String,Object)
- JavaScript傳參的問題
- JavaScript基本類型和引用類型的值
- JavaScript執行環境及作用域
- JavaScript垃圾收集
- JavaScript和JQuery和angularjs操作select
- 搞對象前,你得先有對象
- JavaScript數組
- JavaScript運行原理解析
- Jquery和angularjs獲取check框選中的值小技巧
- JavaScript函數表達式
- JavaScript的閉包理解
- JavaScript BOM
- JavaScritpt的DOM初探之Node(一)
- 為什么說DOM操作很慢
- jQuery性能優化