神马是EcmaScript5

首先得先搞清楚ECMAScript是神马,我们知道JavaScript或者说LiveScript最开始是Netscape搞出来的,后来微软也跟进搞出了Jscript,ScriptEase也有自己的CENvi,这样就有了三个版本的浏览器Script各行其是,大家懂这个混乱的,于是乎标准化的问题被提上议事日程。1997年以JavaScript1.1为蓝本的建议被提交到欧洲计算机制造商协会(European Computer Manufacturers Association),最后大家载歌载舞搞出了ECMA-262——一种名为ECMAScript的新脚本语言标准。第二年,ISO/IEC(国际标准化组织和国际电工委员会)也采用ECMAScript作为标准,此后天下太平,各大浏览器厂商以ECMAScript作为各自实现JavaScript的基础,当然只是基础,没完全按照来,否则我们也不会有那么多浏览器兼容性问题。

那么ECMAScript5是什么呢?顾名思义跟iPhone5一样是这个奇怪东东的第五个版本,我们现在常用的时ECMAScript3,相比前两个版本这个版本算是一门正真的编程语言而不是玩具了,变得很流行。

为什么没有ECMAScript4就开始有ECMAScript5了呢?实际上4也是有的,不过这个版本几乎颠覆了之前版本,没有浏览器厂商跟进,基本就废弃了,而ECMAScript5只是在3.1的基础上做了一定的拓展,而且各大浏览器厂商响应积极,所以称得上是JavaScript的未来。

ECMAScript与JavaScript有神马关系

虽然我们经常拿着两个东东都表达相同的含义,但正如刚才提到,JavaScript是各大浏览器厂商基于ECMAScript的实现,也就是说ECMAScript是标准,而JavaScript是真正的语言。

其实看看ECMAScript文档可以发现ECMAScript和web浏览器没有依赖关系,并不包含输入和输出的定义,也没有DOM啊、BOM啊神马的,它主要包括

1. 语法

2. 类型

3. 语句

4. 关键字

5. 保留字

6. 操作符

7. 对象

而基于此的JavaScript致力于用户和浏览器交互,所以在ECMAScript基础上拓展了很多内容,主要包括

1. 核心(ECMAScript)

2. 文档对象模型(DOM)

3. 浏览器对象模型(BOM)

这样JavaScript以浏览器为宿主,进行浏览器与用户的交互,使网页具有动态性。ECMAScript和JavaScript关系是这样的(ECMAScript出来一小块儿是因为很多JavaScript并没有完全实现标准)

严格模式

ECMAScript5 认可有些用户希望限制使用语言中某些功能的可能性,不让JavaScript容错性那么高,对代码严格一些,他们这样做可能是为了安全考虑,避免他们认为是容易出错的功能,获得增强的错误检查,或其他原因。

为此ECMAScript5引入“严格模式”概念,在JavaScript文件顶部或者方法上面添加字符串”use strict”就可以启用严格模式,因为这就是一个字符串,所以老式浏览器会直接忽略,不会造成兼容性困扰。

var o = Object.create({}, { 'sex':{value: 'male',writable: false,enumerable: false,configurable: false}});o.sex = 'female';console.log(o.sex);//male

虽然我们把sex的configurable设成了false,也就是不能修改sex的值,但是我们在代码中试图修改也没什么事儿,只是sex不会改变而已,但是如果我们使用严格模式

'use strict'var o = Object.create({}, { 'sex': {value: 'male',writable: false,enumerable: false,configurable: false}});o.sex = 'female'; //Uncaught TypeError: Cannot assign to read only property 'sex' of #<Object> console.log(o.sex);

在赋值的时候程序会直接报错,终止执行,关于在严格模式下哪些操作做不得可以看看MSDN上关于严格模式的讲解

浏览器支持

目前主流的浏览器都对ECMAScript5支持

  • Opera 11.60 +
  • Internet Explorer 9+(IE9不支持严格模式,IE10支持)
  • Firefox 4 +
  • Safari 5.1+(不支持Function.prototype.bind)
  • Chrome 13+

详细支持情况可以看看 ECMAScript 5 compatibility table

新特性

ECMAScript5 Object的新属性方法

ECMAScript5 Array新增方法

ECMAScript5的其它新特性

querySelector和querySelectorAll

了解一下JavaScript的未来——ECMAScript5相关推荐

  1. ECMAScript 和 JavaScript 的未来

    本文摘自<深入理解JavaScript特性>,本书将JavaScript新特性融入简单易懂的示例中,包括ES6及后续更新,助你大幅提升代码表达能力. JavaScript之父Brendan ...

  2. ECMAScript简史 和 JavaScript的未来(译)

    本文翻译自 Nicolas Bevacqua 的书籍 <Practical Modern JavaScript>,这是该书的第一章.翻译时我收获很大,希望阅读时你也能有所收获. 本章主要讲 ...

  3. Javascript与未来十年的数据编程

    作者 |Ben Schmidt 译者 |弯月 出品 | CSDN(ID:CSDNnews) 以下为译文: 最近,我做了许多有关数据编程未来发展方面的探索.在日常工作中,我使用Python 的 pand ...

  4. 有人说JavaScript是未来的编程语言?这是为什么?

    JavaScript是Web开发中最简单的面向结果的语言之一.该语言使数据的处理和计算成为一种方便.它还有助于将视觉效果添加到屏幕上.它是一种同时用于客户端和服务器端应用程序的语言.根据雷德蒙在其他编 ...

  5. 仅用10天设计的JavaScript,凭什么成为程序员最受欢迎的编程语言?

    导语:在这个世纪之交诞生的 JavaScript,没人想到会发展为当今世界上最流行的语言之一.它不够成熟,不够严肃,甚至连名字都是模仿的 Java.那么,JavaScript 的成功是依靠运气和完美时 ...

  6. 图灵直播 | 25年后我们怎样评价JavaScript?

    JavaScript 一次又一次地被加冕为世界上最流行的编程语言. 无论你是否同意,有一点可以肯定:"自 1995 年问世以来,它历经风雨,才逐步形成当下的巨大生态." 1995 ...

  7. 《JavaScript高级程序设计》(第2版)上市

      本书是技术畅销书<JavaScript高级程序设计> 的第2版,几乎全部更新.重写 了上一版的内容,融入了作者近几年来奋战在前端开发一线的宝贵经验 , 是学习和提高JavaScript ...

  8. 什么是TypeScript?为什么我要用它代替JavaScript? [关闭]

    本文翻译自:What is TypeScript and why would I use it in place of JavaScript? [closed] Closed . 已关闭 . This ...

  9. JavaScript 简史

    本文转载自:众成翻译 译者:网络埋伏纪事 审校: 为之漫笔 链接:http://www.zcfy.cc/article/2389 原文:https://auth0.com/blog/a-brief-h ...

最新文章

  1. Udacity机器人软件工程师课程笔记(十二)-ROS-编写更复杂的ROS节点(arm_mover节点 和 look_away 节点)
  2. golang 文件服务器 实现
  3. Axure 6.5 RP下载,汉化
  4. data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解
  5. python显示当前中文日期_python自动提取文本中的时间(包含中文日期)
  6. for循环中pairs与ipairs的区别与联系
  7. 发现一个小坑的地方,unity的协程,想要停止,必须以字符串启动
  8. 魔兽三国服务器维护,魔兽三国开服七天技巧
  9. CentOS安装五笔输入法
  10. lora信号测试小助手_LoRa是如何通过CAD来实现唤醒的
  11. (转)OGNL与值栈
  12. 微课|中学生可以这样学Python(2.2.4节):逻辑运算符
  13. SAS数据挖掘实战篇【五】
  14. 架构中的技术性解决难题之解决篇
  15. C++ ------------------------- 文件的复制
  16. Google 谷歌翻译 API
  17. 电脑ps4,电脑也能玩PS4游戏 全新串流功能实测体验
  18. Unity3d-模型描边和混色Shader
  19. ubantu下安装redis
  20. 七色的寒冷彩虹便冒了出来

热门文章

  1. 华为上机考试题系列(一):牛客网的奇葩操作
  2. UVA 512 Spreadsheet Tracking
  3. 【VBA】查看窗口当前状态
  4. 11)PHP,单选框和复选框的post提交方式处理
  5. (Android第一行代码)活动的启动模式
  6. zeroclipboard浏览器复制插件使用记录
  7. CI框架源码阅读笔记4 引导文件CodeIgniter.php
  8. 初学者适用的最新Java学习路线
  9. kong 使用jwt RSA256证书
  10. 力扣(LeetCode)258. 各位相加