es5简单总结

es5简单总结建议张鑫旭原文内容导读 1 简介 2 浏览器支持 3 ES5 的严格模式 4 JSON5 添加对象 6 额外的数组 7 Function prototype bind8 补充参考简介 ECMAScript5 1 或仅 ES5 是 ECMAScript 基于 JavaScript 的规范 标准最新修正 与 HTML5 规范进程本质类似 ES5 通过对现有 JavaScript 方法添加语

建议张鑫旭原文

内容导读:
1.简介
2.浏览器支持
3.ES5的严格模式
4.JSON
5.添加对象
6.额外的数组
7.Function.prototype.bind
8.补充参考







简介
ECMAScript 5.1 (或仅 ES5) 是ECMAScript(基于JavaScript的规范)标准最新修正。 与HTML5规范进程本质类似,ES5通过对现有JavaScript方法添加语句和原生ECMAScript对象做合并实现标准化。ES5还引入了一个语法的严格变种,被称为”严格模式(strict mode)”。

浏览器的支持

随着Opera 11.60的发布, 所有5大浏览器都支持ES5, 除了一些实现的bugs. 除非另有说明,本文中提到的的一切可以用在以下浏览器版本(或更高):

ES5的严格模式

严格模式给作者提供了选择一个限制性更强语言变种的方式——给作者提供额外的可靠性给用户提供额外的安全性。在JS文件或是函数的顶部添加”use strict”即可启用严格模式。因为”use strict”就是个字符串,因此其会被旧版浏览器安全地忽视。

"use strict";
function strict(){ 
     "use strict"; //... } function sloppy(){ 
    eval("window.foo = 'bar'"); }

在严格模式下运行脚本,不少导致提醒或buggy行为的事情会抛出错误,例如:

  • 未声明的变量赋值抛出一个ReferenceError, 而不是创建一个全局变量。
  • 不止一次对对象字面量分配相同的属性会抛出SyntaxError.
  • 使用with语句抛出SyntaxError.

JSON
ES5提供一个全局的JSON对象,用来序列化(JSON.stringify)和反序列化(JSON.parse)对象为JSON格式。
JSON.parse(text,[,reviver])
对于老的浏览器,可以考虑使用Douglas Crockford的json2.js, 可以让旧的浏览器实现同样的功能(原始支持功能测试后)。


如果我们想确保解析的值是个整数,我们可以使用reviver方法。 var result = JSON.parse('{"a": 1, "b": "2"}', function(key, value){ 
    if (typeof value == 'string'){ return parseInt(value); } else { return value; } }) >> result.b >2

json.stringfy()

var luckyNums = JSON.stringify(nums, function(key, value) { 
    if (value == 13) { return undefined; } else { return value; } }, 2); >> luckyNums '{ "first":7, "second":14 }'

额外的数组

Function.prototype.bind(thisArg [, arg1 [, arg2, …]])
Function.prototype.bind返回一个新的函数对象,该函数对象的this绑定到了thisArg参数上。从本质上讲,这允许你在其他对象链中执行一个函数。

function locate(){ 
    console.log(this.location); } function Maru(location){ 
    this.location = location; } var kitty = new Maru("cardboard box"); var locateMaru = locate.bind(kitty); locateMaru();

在这个例子中,我们将Maru对象的上下文应用在location函数中。因为location是个全局对象的属性,其this值就是全局对象(window)。在这种情况下,我们向上寻找cat, 并不是Location对象,因为我们可以通过绑定的总是kitty的this值创建一个新方法locateMaru.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231586.html原文链接:https://javaforall.net

(0)
上一篇 2025年12月3日 下午4:01
下一篇 2025年12月3日 下午4:22


相关推荐

  • 解决uploadify插件不同浏览器下的兼容性问题

    解决uploadify插件不同浏览器下的兼容性问题

    2021年10月26日
    47
  • Android Fragment用法之给Activity创建事件回调

    在某些案例中,可能需要Fragment与Activity共享事件。在Fragment内部定义一个回调接口是一个好方法,并且规定由持有它的Activity实现这个回调方法。当Activity通过接口接受回调时,它能在必要时与布局中的其他Fragment共享信息。例如,如果一个音乐播放器的应用程序在一个Activity中有两个Fragment—一个用来显示歌曲列表(Fragment A),另一

    2022年3月9日
    45
  • IP切换器哪个最好用?

    IP切换器哪个最好用?首先要回答这个问题 需要弄清楚以下几点 我们才能更好的判断 ip 是上网的身份唯一标识 IP 切换器即代理服务器是一种重要切换 ip 的安全功能 通过中间代理服务器改变你原有的电脑 手机 ip 地址去访问你请求的网络地址 很好的保护个人信息安全 提高网络访问速度 有了它之后 Request 信号会先送到代理服务器 由代理服务器来取回浏览器所需要的信息并传送给你的浏览器 在日常生活中 我们使用 IP 切换器 大多数是用来连接 INTERNET 国际互联网 和 INTRANET 局域网 说到 IP 切换器方面的特点 这是非常多的

    2026年3月20日
    1
  • linux 主机支持远程唤醒_Linux远程开机

    linux 主机支持远程唤醒_Linux远程开机一,什么情况下需要远程开机?如果我们的服务器没有部署在本地(实际上通常都是这样的,我们会把服务器托管到IDC机房),而且服务器在机房中不止一台,其中一台被关闭时,则我们可以远程连接一台没有关机的服务器上,然后进行远程开机.二,远程开机需要的软件它需要wakeonlan这个软件,从何处得到它?它的官方站是:http://sourceforge.net/projects/wake-on-lan/如果使…

    2022年5月5日
    102
  • view.performClick()触发点击事件

    view.performClick()触发点击事件view.performClick(),主动触发点击

    2022年6月16日
    75
  • centos7 安装netdata及使用

    centos7 安装netdata及使用netdatanetda 简介构建最佳的实时健康监控和性能故障排除解决方案 netdata 官网 https www netdata cloud aboutnetdata 文档 https docs netdata cloud netdata 安装参考 https docs netdata cloud packaging installer install netdata

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号