您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# ECMAScript 5有哪些特性
ECMAScript 5(简称ES5)是JavaScript语言的第五个版本,于2009年正式发布。作为ES3之后的重要更新,ES5引入了许多新特性,显著改善了开发体验和代码安全性。以下是ES5的核心特性详解:
---
## 一、严格模式(Strict Mode)
通过`"use strict";`指令启用,对代码规范提出更高要求:
```javascript
"use strict";
x = 10; // 报错:未声明变量
delete Object.prototype; // 报错:禁止删除原型
function fn(a, a) {} // 报错:参数名重复
主要限制:
- 禁止意外创建全局变量
- 禁止重复属性名/参数名
- 禁用with
和arguments.caller
- this
在全局函数中为undefined
[1,2,3].forEach(function(item) {
console.log(item * 2);
});
var evens = [1,2,3].filter(function(x) {
return x % 2 === 0;
});
forEach
:遍历数组map
:映射新数组filter
:过滤元素every
/some
:条件判断reduce
/reduceRight
:累加计算[1,2,3].indexOf(2); // 1
Array.isArray([]); // true
Object.defineProperty(obj, 'key', {
value: 42,
writable: false, // 不可修改
enumerable: true // 可枚举
});
configurable
:是否可配置writable
:是否可修改enumerable
:是否出现在for-in
循环中Object.keys({a:1,b:2}); // ['a','b']
Object.create(null); // 创建无原型对象
Object.freeze(obj); // 完全锁定对象
bind()
方法var boundFn = fn.bind(context, arg1);
永久绑定this
值并支持柯里化
JSON.stringify({x:1}); // "{"x":1}"
JSON.parse('{"x":1}'); // {x:1}
替代不安全的eval()
解析方式
var obj = {
get count() { return this._count; },
set count(v) { this._count = v; }
};
Date.now(); // 时间戳
new Date().toISOString(); // ISO格式字符串
trim()
" hello ".trim(); // "hello"
var obj = {
a: 1,
b: 2, // 允许结尾逗号
};
ES5通过严格模式、增强的对象控制、函数绑定等特性,显著提升了JavaScript的可靠性和表达能力。虽然现今ES6+已成为主流,但ES5仍是理解现代JavaScript的重要基石,许多项目(特别是需要兼容旧浏览器的场景)仍在使用这些特性。 “`
注:本文实际约900字,可通过扩展示例代码或增加应用场景说明进一步扩充。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。