## 一、變量的數據類型
1、簡單數據類型:Boolean/String/NumberUndefined/Null
在Javascript的簡單數據類型中,有兩個特別的類型:Undefined和Null,二者均只有一個值,分別是undefined和null(區分大小寫),具體說明詳見下文的常量部分。
2、復雜數據類型:常見的有兩種,Array(數組)和Object(對象)。
2.1 在JavaScript中,不能直接聲明二維等多維數組,但是可以通過嵌套實現,以聲明二維數組為例,常見方式有:
2.1.1 ?var arr1 = new Array(); arr1[0] = new Array();
2.1.2 ?var arr2 = new Array([1,2,3],new Array([4,5,6));
2.1.3 ?var arr3 = [[1,2],[3,4]];
2.2 Object是屬性集合,屬性用于描述對象特性。屬性值可以是任何Javascript數據類型,包括對象。
var user ?= new Object();
user.name = "zahng";
user.age=20;
上述定義了一個user對象,并給user的name和age屬性賦值。
## 二、變量的聲明
1、在Javascript中,使用var聲明變量:var 變量名;Javascript是無類型語言,在聲明時不需要指定變量的數據類型,Javascript會自動轉換。(變量名區分的大小寫,在非嚴格模式下,var可以省略)
2、Javascript變量命名規范
2.1 第一個字符必須是字母、下劃線或美元符
2.2 后跟任意的字母、數字、美元符和下劃線,也可以是unicode字符(包括中文)
2.3 不能是關鍵字或邏輯常量(true/flase/null/undefined),且在作用范圍內必須唯一
## 三、常量
1、null常量:表示某個變量或屬性未賦值。常見情況:
1.1 表示變量存在,蛋不需要定義值或未賦值:var ex1 = null;var ex2;
1.2 表示函數沒有返回值:function getInfo(){return null;}
1.3 表示調用函數或方法,省略一個參數。
1.4 表示動態對象的屬性值,當沒有初始化,其值為null
2、undefined常量:表示未初始化的變量或動態對象屬性。作用于不同類型時,返回值不同
String(undefined)返回字符串"undefined";
Number(undefined)返回"NaN";
Object(undefined)返回新的Object實例
3、null常量和undefined常量的比較
3.1 使用==和===比較null和undefined,返回值不同
nul == undefined返回true,null === undefined返回false.
3.2 概念的比較
var info = new Object; info.mes; alert(info.mes == null); ?//返回true
var user = new Object;alert(user,sex); ?//返回undefined,sex屬性沒有初始化,null是針對動態對象屬性,而Object是非動態屬性
## 四、ECMAScript的嚴格模式
1、使用嚴格模式
在全局范圍或者函數內部(局部范圍)使用嚴格模式,只需在腳本代碼的第一行添加:"use strict";就可以在ECMAScript的嚴格模式的編程
2、嚴格模式下的特定要求
2.1 必須使用var關鍵字聲明變量。
2.2 對象的屬性名必須唯一且不同定義相同屬性
2.3 函數中不同有同名參數且arguments數組的屬性是只讀的
2.4 eval成為i保留的關鍵字
2.5 with語句被拋棄,且不支持八進制數字
- 前言
- 一
- 二:變量
- 三:數據運算
- 四:流程控制
- 五:內建的全局函數
- 六:自定義函數
- 七:面向對象編程(OOP)
- 八:靜態成員、靜態類、枚舉、重載和覆蓋
- 九:原型鏈本質論
- 十:ECMAScript 5 增強的對象模型
- 十一:處理字符串---String類和正則表達式
- 十二:數組、多維數組和符合數組(哈希映射)
- 十三:處理日期和時間
- 十四:JavaScript內建類
- 十五:BOM之源---window對象
- 十六:BOM之源---BOM基本應用
- 十七:BOM新成就(1)--客戶端存儲數據(Storage實現)
- 十八:BOM新成就(1)--客戶端存儲數據(Web SQL DataBase實現)
- 十九--HTML5 DOM新標準---處理文檔元信息和管理交互能力
- 二十---XMLHttpRequest和AJAX解決方案