《Javascript权威指南》学习笔记二之变量
2014-05-14 12:05
183 查看
一、变量的数据类型
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语句被抛弃,且不支持八进制数字
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语句被抛弃,且不支持八进制数字
相关文章推荐
- 《JavaScript权威指南》学习笔记——类型,变量与值
- 《Javascript权威指南》学习笔记二之变量
- 《javascript权威指南》读书笔记(1)—词法结构、类\变量\对象
- 《Javascript权威指南》学习笔记之十四:JavaScript内建类
- 避开绑定变量的弱点的一个经典解决方案——《Oracle高效设计》学习笔记
- 《Effective C++》学习笔记条款22 将成员变量声明为private
- 学习笔记 unsigned 变量 局部变量 数组溢出
- 【笔记】javascript权威指南-第三章-类型,值和变量
- 《从零开始学Swift》学习笔记(Day 8)——小小常量、变量大作用
- (学习笔记)静态常量成员变量的初始化
- javascript权威指南:javascript 变量
- 《代码大全》学习笔记:第10,11,12,13章 关于变量的使用,命名等。
- 《鸟哥的Linux私房菜》学习笔记(8)——bash脚本编程之变量
- 《从零开始学Swift》学习笔记(Day 8)——小小常量、变量大作用
- 《Effective C++》学习笔记条款26 尽可能延后变量定义式的出现时间
- 学习笔记8 ORA-01036 非法的变量名/编号
- 《精通QTP-自动化测试技术领航》学习笔记7--环境变量
- 学习笔记之数据类型和变量2
- 《perl实例精解》学习笔记第二天【变量、数组、哈希】(上)
- 《JavaScript权威指南》学习笔记 第七天 DOM操作