JavaScript严格模式(ECMAScript5新增)

JavaScript 严格模式:即在严格的条件下运行

使用方法:在JavaScript顶部添加 ‘use strict‘ 命令  浏览器支持(Internet Explore 10+、Firefox 4+、Chrome 13+、Safari 5.1+、Opera 12+)

严格模式带来了哪些好处?

1、提高了报错的场合;

2、提高了编译器的编译效率,增加运行速度;

3、为未来新版本的JavaScript做好铺垫。

严格模式带来了哪些限制?

a)不允许使用为声明的变量

b)不允许删除变量或对象(对象也是一个变量)

c)不允许删除函数

d)不允许变量重名

e)不允许使用八进制

f)不允许使用转义字符

g)不允许对只读属性赋值

h)不允许对一个getter()方法读取的属性进行赋值

i)不允许删除一个不允许删除的的属性

j)变量名不能使用"eval" 字符串

k)变量名不能使用“arguments”字符串

l)with (Math){ x = cos(2) }; //报错

m)禁止this关键字指向全局对象

原文地址:https://www.cnblogs.com/jiangw/p/8335204.html

时间: 2024-11-02 02:21:34

JavaScript严格模式(ECMAScript5新增)的相关文章

了解一下JavaScript的未来——ECMAScript5

神马是EcmaScript5 首先得先搞清楚ECMAScript是神马,我们知道JavaScript或者说LiveScript最开始是Netscape搞出来的,后来微软也跟进搞出了Jscript,ScriptEase也有自己的CENvi,这样就有了三个版本的浏览器Script各行其是,大家懂这个混乱的,于是乎标准化的问题被提上议事日程.1997年以JavaScript1.1为蓝本的建议被提交到欧洲计算机制造商协会( E uropean C omputer M anufacturers A sso

Javascript 严格模式详解

Javascript 严格模式详解 作者: 阮一峰 日期: 2013年1月14日 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. 设立"严格模式"的目的,主要有以下几个: - 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; - 消除代码运行的一些不安全之处,保证代码运行的安全: - 提高编译器效率,增加运行速度

Javascript 严格模式(strict mode)详解

Javascript 严格模式详解 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. 设立"严格模式"的目的,主要有以下几个: - 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; - 消除代码运行的一些不安全之处,保证代码运行的安全: - 提高编译器效率,增加运行速度: - 为未来新版本的Javascript做好

JavaScript严谨模式(Strict Mode)

下面的内容翻译自It’s time to start using JavaScript strict mode,作者Nicholas C.Zakas参与了YUI框架的开发,并撰写了多本前端技术书籍,在我看过关于JavaScript严格模式的入门介绍文章中,这篇是写得最好的. ECMAScript5中引入的严格模式,通过让JavaScript运行环境对一些开发过程中最常见和不易发现的错误做出和当前不同的处理,来让开发者拥有一个”更好”的JavaScript语言.很长一段时间内,由于只有Firefo

Javascript 严格模式与正常模式的区别

原来来自:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html Javascript 严格模式详解 作者: 阮一峰 日期: 2013年1月14日 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. 设立"严格模式"的目的,主要有以下几个: - 消除Javascr

Javascript原型模式总结梳理

在大多数面向对象语言中,对象总是由类中实例化而来,类和对象的关系就像模具跟模件一样.Javascript中没有类的概念,就算ES6中引入的class也不过是一种语法糖,本质上还是利用原型实现.在原型编程语言中,类并不是必需的,对象不一定需要由类实例化而来,而是通过克隆另外一个对象来得到. 原型模式是用来创建对象的一种模式.在以类为中心的语言中,要创建一个对象首先要指定这个对象的类型,然后实例化一个对象.使用原型模式创建对象时不必关心对象的具体类型,而是找到一个对象,然后通过克隆来创建一个一模一样

ECMAScript5新增数组API的一些细节

ECMAScript5新增的数组方法看似都比较简单其实还是有一些细节需要了解的 首先这些方法都不会作用于原数组,其次是在对稀松数组的处理上. (1)这些方法在稀松数组缺少的元素上都不会执行回调函数 (2)map的返回值包括稀松数组缺少的元素,而filter方法会过滤掉稀松数组的缺少元素,从而返回的都是一个紧凑的数组 var a = new Array(10); a[0] = null ; a[1] = undefined; var _a = a.map(function(){ return 1;

javascript单体模式

单体模式的思想在于保证一个特定类仅有一个实例.这意味着当第二次使用同一个类创建的新对象的时候,应该得到与第一个所创建的对象完全相同. javacript中并没有类,因此对单体咬文嚼字的定义严格来说并没有意义.但是javascript具有new语法可使用构造函数来创建对象,而且有时需要使用这种语法的单体实现.这种思想在于当使用同一个构造函数以new操作符来创建多个对象时,应该仅获得指向完全相同的对象的新指针. 下面的代码显示了其预期行为: var nui = new Universe(); var

详解javascript,ES5标准中新增的几种高效Array操作方法

1.js中常用的数组Array对象属性: 如图,其中用红色圆圈标记的部分,为ES5新增的属性. 2.浏览器支持情况: IE:9+; Chrome; Firefox2+; Safari 3+; Opera 9.5+; 3.位置方法 ECMAScript5为数组定义了2个位置方法.indexOf(),lastIndexOf(); 这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引. 其中,indexOf()从数组的开头(位置0)开始向后查找,lastIndexOf()则是从数组的