“use strict”状态指示浏览器使用严格模式,是javaScript中一个相对少且安全的特征集。

特征列表(非完全列举)

  1. 不允许定义全局变量。(捕获没有用var声明的变量和变量名的拼写错误)
  2. 在严格模式下引起静默失败的声明将会抛出异常(声明 NaN  =  5)
  3. 试图删除不能删除的属性将会抛出异常(delete  object . prototype)
  4. 在一个对象中的所有属性名要唯一(var x = {x1 :  “1”,  x1 : “2”})
  5. 函数的参数名必须唯一(function sum(x, x){…})
  6. 禁止使用八进制数字语法(var  x = 023; 一些开发者错误的认为前面的0不会改变数字)
  7. 禁止使用with关键字
  8. eval在严格模式中不引入新的变量
  9. 禁止删除声明变量(delete  x)
  10. 禁止以任何形式对eval和arguments进行绑定或赋值
  11. 严格模式不会将arguments对象的值同步给形参。(例如,在函数sum(a, b) { return arguments[0] + b},这个写法是因为arguments[0]就绑定到了a上,等等。在正常模式下,对于第一个参数是arg的函数,对arg赋值会同时赋值给arguments[0],反之亦然(除非没有参数,或者arguments[0]被删除)。严格模式下,函数的arguments对象会保存函数被调用时的原始参数。Arguments[i]的值不会随之与之相应的参数的值的改变而变化,同名参数的值也不会随与之相应的arguments[i]的值的改变而变化。
  12. 不再支持arguments.callee。

译自:http://stackoverflow.com/questions/1335851/what-does-use-strict-do-in-javascript-and-what-is-the-reasoning-behind-it    &  answerd by gprasant

更详细的说明在MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Strict_mode

相关链接:https://tc39.github.io/ecma262/#sec-strict-mode-of-ecmascript

http://yanhaijing.com/es5/#about

javaScript中的严格模式 (译)的更多相关文章

  1. 理解javascript中的策略模式

    理解javascript中的策略模式 策略模式的定义是:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换. 使用策略模式的优点如下: 优点:1. 策略模式利用组合,委托等技术和思想,有效 ...

  2. 浅谈 JavaScript 中的继承模式

    最近在读一本设计模式的书,书中的开头部分就讲了一下 JavaScript 中的继承,阅读之后写下了这篇博客作为笔记.毕竟好记性不如烂笔头. JavaScript 是一门面向对象的语言,但是 ES6 之 ...

  3. 理解javascript中的原型模式

    一.为什么要用原型模式. 早期采用工厂模式或构造函数模式的缺点:  1.工厂模式:函数creatPerson根据接受的参数来构建一个包含所有必要信息的person对象,这个函数可以被无数次的调用,工厂 ...

  4. 浅谈JavaScript中的原型模式

    在JavaScript中创建对象由很多种方式,如工厂模式.构造函数模式.原型模式等: <pre name="code" class="html">/ ...

  5. javaScript中的闭包原理 (译)

    这篇文章通过javaScript代码解释了闭包的原理,来让编程人员理解闭包.它不是写给大牛或使用功能性语言进行编程的程序员的.一旦意会了其核心概念,闭包理解起来并不难.然而,你不可能通过阅读任何有关闭 ...

  6. 【JS】336- 拆解 JavaScript 中的异步模式

    点击上方"前端自习课"关注,学习起来~ JavaScript 中有很多种异步编程的方式.callback.promise.generator.async await 甚至 RxJS ...

  7. 【JS】285- 拆解 JavaScript 中的异步模式

    JavaScript 中有很多种异步编程的方式.callback.promise.generator.async await 甚至 RxJS.我最初接触不同的异步模式时,曾想当然的觉得 promise ...

  8. javascript中的Strict模式

    目录 简介 使用Strict mode strict mode的新特性 强制抛出异常 简化变量的使用 简化arguments 让javascript变得更加安全 保留关键字和function的位置 总 ...

  9. Javascript 中的严格模式

    原文:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html 一.概述 除了正常运行模式,ECMAscript 5添加了第 ...

随机推荐

  1. hdu-5738 Eureka(组合计数+极角排序)

    题目链接: Eureka Time Limit: 8000/4000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) Pr ...

  2. June 26,程序破解

    1.android程序破解练习初级 方法一: 文件名:KeygenMe#1.apk工具:ApktoolGui v2.0 Final 先用ApktoolGui v2.0 Final反编译成java通过查 ...

  3. 洛谷P4719 动态DP —— 动态DP(树剖+矩乘)

    题目:https://www.luogu.org/problemnew/show/P4719 感觉这篇博客写得挺好:https://blog.csdn.net/litble/article/detai ...

  4. layui 复选框checkbox 全选写法

    前语:本来我是不想写layui框架的博客的,有的时候数据经过layui渲染后原生的写法就取不到值了,一定要用它框架的写法,实在蛋疼,故写之,以后用到可以省点时间去度娘! HTML: <div i ...

  5. QC使用常见问题

    1.如果出现/qcbin/setup_a.cab this file didn’t pass singnature checking. 请下载capicom.dll文件拷贝到c:windowssyst ...

  6. .Net框架中的CLR,CTS,ClS的解释

    CLR的全称(Common Language Runtime) 公共语言运行时 可以把它理解为包含运行.Net程序的引擎 和 一堆符合公用语言基础(CLI)的类库的集合,他是一个规范的实现,我们开发的 ...

  7. java mysql编码问题

    今天使用jdbc连接数据库,sql语句明明是正确的,可就是查不到数据,问题是编码问题,好大的坑啊!!! 我的问题:where语句带汉字找不到信息,如果是英文却可以 第一步:在url后面加上如下的utf ...

  8. 【网络爬虫】【python】网络爬虫(二):网易微博爬虫软件开发实例(附软件源码)

    对于urllib2的学习,这里先推荐一个教程<IronPython In Action>,上面有很多简明例子,并且也有很详尽的原理解释:http://www.voidspace.org.u ...

  9. C#利用WebService接口下载文件

    WebTest.RtTfSimDataInterface test = new WebTest.RtTfSimDataInterface(); //string strBasic = test.Get ...

  10. 767. Reorganize String

    Given a string S, check if the letters can be rearranged so that two characters that are adjacent to ...