## 一、变量的数据类型
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解决方案