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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LAMP配置详解

    LAMP配置详解LAMP就是linux+apache+mysql+php用来web开发的经济实惠的东东,完全开源,很值得期待!,配置这个东西花了我多半天的时间,非常郁闷,总结一下,,时间就是浪费在对垃圾信息的尝试下,搜索引擎提供给我们海量的东西,因此就需要我们去筛选信息,得到,,,,适合自己的,准确的信息,从而去解决问题。。。有些不负责任的网站为了增加流量很多信息纯copy的,,,,而在这个过程中有多少信息丢失歪曲,,,,真是让我恨之入骨啊,,,最后得出一条经验:去专业网站上搜索(省时又准确),或者在百度上打

    2022年6月3日
    50
  • jenkins拉取gitlab代码_python 获取jenkins的构建信息

    jenkins拉取gitlab代码_python 获取jenkins的构建信息前言python自动化的脚本开发完成后需提交到git代码仓库,接下来就是用Jenkins拉取代码去构建自动化代码了新建项目打开Jenkins新建一个自由风格的项目源码管理Repository

    2022年7月30日
    6
  • noip2015_noip2021复赛

    noip2015_noip2021复赛二项式定理推出系数等于a^n*b^m*C(n,k)快速幂+组合数(逆元做除法)结束。具体看代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<vector>#inc…

    2022年9月25日
    1
  • sql数据库嵌套查询_select嵌套查询

    sql数据库嵌套查询_select嵌套查询嵌套查询是将一个select查询放到另一个查询的where子句中去如:查询”xx“同学的所修课程及分数1.先选择姓名为”xx”的同学的学号select学号from学生where姓名=“XX”2.根据学号来选择相关字段select课程名,分数from成绩where学号=根据1,2合并select课程名,分数from成绩where学号=(select学号from…

    2022年8月10日
    9
  • 常用组合数计算公式及推算[通俗易懂]

    常用组合数计算公式及推算[通俗易懂]参考:博客1博客2更多更详细请看博客2组合数的通项公式:公式1:证明:n个不同的数选择m个,第m个的选择方案为:1、选第m个:2、不选第m个:公式2:证明:性质3:证明:性质4:证明:性质5:…

    2022年7月25日
    26
  • hdu 3631 Shortest Path(Floyd)[通俗易懂]

    hdu 3631 Shortest Path(Floyd)

    2022年2月1日
    35

发表回复

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

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