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


相关推荐

  • 理解class.forName()

    理解class.forName()

    2021年12月7日
    37
  • 损失函数 mse_二分类损失函数

    损失函数 mse_二分类损失函数损失函数文章目录损失函数含义:标准:常用的两种损失函数均方误差损失函数(MSE)【MeanSquareErrorLoss】交叉熵损失函数(CS)【CrossEntropyLoss】均方误差损失函数计算公式含义解释代码实现适用范围交叉熵损失函数计算公式含义解释代码实现适用范围含义:用于衡量在训练集上模型的输出与真实输出的差异标准:损失函数越小,模型输出与真实输出越相似,模型效果越好常用的两种损失函数均方误差损失函数(MSE)【MeanSquareErrorLoss】交叉

    2025年12月7日
    3
  • 网页游戏设计经验谈「建议收藏」

    网页游戏设计经验谈「建议收藏」作者是网页游戏《古今东西》(www.ooplay.net)的设计者。这篇文章讲述了设计游戏3年中的感悟。 引言有这样一个故事。曾经有一段时期,地球上所有的人都是神,但是他们却无法无天,滥用神权。因此,众神之神的梵天决定,要把人的神性从他们身上取走,藏在他们永远也找不到的地方,让他们再也不能滥用自己的神权。“我们把它深埋在地下吧。”其他神说。“不,”梵天说,“因为他们会向下挖地,

    2022年6月1日
    29
  • 4G LTE Advanced_LTE百科

    4G LTE Advanced_LTE百科IS-95   IS-95是由高通公司发起的第一个基于CDMA数字蜂窝标准。IS全称为InterimStandard,即暂时标准,基于IS-95的第一个品牌是cdmaOne。IS-95也叫TIA-EIA-95。它是一个使用CDMA的2G移动通信标准,一个数据无线电多接入方案,其用来发送声音,数据和在无线电话和蜂窝站点间发信号数据(如被拨电话号码)。IS-95及其相关标准是最早商用的

    2022年10月4日
    4
  • sql左连接出现重复数据「建议收藏」

    情况说明:只需左表数据,右表数据只作为条件存在,左表数据与右边有1:n关系,左连接出现重复数据原因分析:由于1:n关系,右边数据连接后处于隐藏状态(类似),实际上数据未重复,由于只显示左边数据,就形成了数据重复情况例:左表:右表:左连接且只需要左表数据:如果取右表数据,上面显示的结果就不算重复:解决方法:直接对数据进行DISTINCT求唯一值,…

    2022年4月17日
    42
  • JQuery的submitHandler

    之前做表单验证,有设置submitHandlersubmitHandler:function(){$(“form”).submit();}这样表单验证通过后会自动提交。。。。改为submitHandler:function(form){form.submit();}否则,button按钮提交表单之后,表单会提交两次,前端造成stack溢出…

    2022年4月5日
    275

发表回复

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

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