ECMAScript的一些特性
严格模式(strict mode)
ES5引入。严格模式下JS的解析和执行将会不同,解决一些ES3中的不确定行为,不安全操作也会报错。
使用方式
在顶部添加如下代码
// 切换JS引擎为严格模式
"use strict";
指定函数在严格模式下执行
function test() {
"use strict";
// ...
}
数据类型
ES有6种数据类型:
undefined, null, boolean, number, string, object
typeof
typeof可以用来检测变量的数据类型,返回的是字符串
// 'undefined' 未定义
// 'boolean'
// 'string'
// 'number'
// 'object' 对象或null
// 'function'
Undefined类型
Undefined类型的变量就只有一个值,即undefined
使用var声明变量,但未对变量进行初始化,这个变量的值就是undefined。
Null类型
Null类型也只有一个值,null。
如果定义的变量准备用来保存对象,建议将变量初始化为null。
Object类型
Object类似Java中的Object对象,每个Object类型的实例都会具有Object类中的属性和方法。
- constructor,保存创建当前对象的函数
- hasOwnProperty(propertyName),检查给定的属性在当前对象实例中是否存在
- isPropertypeOf(object),检查传入的对象是否是当前对象的原型
- propertyIsEnumerable(propertyName),检查属性是否能用for-in枚举
- toLocalString()
- toString()
- valueOf()
函数
没有重载,同名函数,后定义的函数会覆盖前面定义的函数。