`
SophiaHzy
  • 浏览: 12189 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

那些逐步掌握的JavaScript('use strict')

阅读更多

早已习惯在use strict模式下编写JavaScript代码,也知道它的一些约束,特性。今日在看视频时竟收获了几个原来不曾知道的特性。

 

    首先科普下JavaScript的严格模式。

慕课网《JavaScript深入浅出》作者写道
严格模式是一种特殊的执行模式,
它修复了部分语言上的不足,
提供更强的错误检查,并增强安全性。

   

严格模式可使用在某个函数内部,也可使用在整个脚本中。开启严格模式的语法为‘use strict’。

  

function foo(){
  'use strict';
}

 

 

'use strict';
function foo(){
}

 介绍就到这,如还未使用的伙伴可自行搜索:JavaScript  严格模式

 

一.use strict前不可写var b;

我知道在定义'use strict'前仍可写代码(即无需写在代码的第一行),但不知道在'use strict'前输入

var a;

类似代码,则不行。

 

二.use strict下,不允许有8进制数。

function foo(){
'use strict';
console.log(0321);
}

 以上代码,则会报错。Uncaught SyntaxError: Octal literals are not allowed in strict mode.

 

三.use strict下,eval、arguments成了关键字,不能作为变量函数名。

function f(){
  'use strict';
  function eval(){
   console.log(eval);
  }
}

 以上代码,依旧会报错。Uncaught SyntaxError: Unexpected eval or arguments in strict mode

 

四.use strict下,eval变成了独立作用域

!function(){
 "use strict";
  eval('var evalVal=2;’);  
   console.log(typeof evalVal);   //number
}();

 在一般模式下,在eval所在的函数内可得到evalVal,则会打印number;在 严格模式下eval中的代码会在独立作用域中执行,所以在外面evalVal则拿不到。即为undefined。

 

 

以上便是今日通过慕课网视频中学习而得。其外严格模式下还有很多限制,约束特性。如Bosn老师在PPT中写道的:

Bosn老师的PPT内容 写道
不允许用with

所有变量必须声明, 赋值给为声明的变量报错,而不是隐式创建全局变量。

eval中的代码不能创建eval所在作用域下的变量、函数。而是为eval单独创建一个作用域,并在eval返回时丢弃。

函数中得特殊对象arguments是静态副本,而不像非严格模式那样,修改arguments或修改参数变量会相互影响。

删除configurable=false的属性时报错,而不是忽略

禁止八进制字面量,如010 (八进制的8)

eval, arguments变为关键字,不可作为变量名、函数名等

一般函数调用时(不是对象的方法调用,也不使用apply/call/bind等修改this)this指向null,而不是全局对象。

若使用apply/call,当传入null或undefined时,this将指向null或undefined,而不是全局对象。

试图修改不可写属性(writable=false),在不可扩展的对象上添加属性时报TypeError,而不是忽略。

arguments.caller, arguments.callee被禁用

 其中一些早已用熟,此处便未贴上代码解释。

 

 

  最后,严格模式的向上兼容的。 

 

分享到:
评论

相关推荐

    前端开源库-use-strict

    在JavaScript的世界里,"use strict" 是一个非常重要的指令,用于启用ECMAScript规范中的严格模式。严格模式是一种更安全、更严格的JavaScript执行环境,它旨在消除语法错误,避免一些意外的行为,并强制开发者遵循...

    Javascript 严格模式use strict详解

    严格模式:由ECMA-262规范定义的JavaScript标准,对javascrip的限制更强。 (非严格的模式,被称为“马虎模式/稀松模式/懒散模式”。) 一、严格模式的使用 严格模式可以在脚本或函数级别实现。(即全局和局部模式)...

    JavaScript 严格模式(use strict)

    JavaScript 严格模式(use strict) JavaScript 严格模式(strict mode)即在严格的条件下运行。 使用 “use strict” 指令 “use strict” 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。 它不是一条语句,但是是...

    JavaScript 严格模式(use strict)用法实例分析

    JavaScript 严格模式 (`use strict`) 是一种特殊执行模式,它强化了语言的规则,提高了代码质量和安全性。在严格模式下,JavaScript 引擎会执行更严格的解析和执行,旨在暴露和防止潜在的错误,同时也禁用了某些可能...

    前端开源库-use-strict.zip

    在JavaScript的世界里,“use strict”是一个非常重要的指令,它标志着代码应当在严格模式下执行。严格模式是ECMAScript 5引入的一种新的运行模式,旨在提高编译效率,减少错误,并帮助开发者编写更安全、更可靠的...

    七天掌握javascript

    10. **严格模式**:使用`'use strict'`启用严格模式,可以捕获某些潜在错误,并强制执行更严格的代码编写规范。 11. **ES6及以后的新特性**:包括箭头函数、模板字符串、解构赋值、Promise、async/await等,这些新...

    JavaScript面试题集锦

    这篇文章涵盖了JavaScript的多个方面,包括eval函数、window和document对象、null和undefined的区别、数组的map方法、事件机制、use strict模式等。 eval函数 eval函数可以将字符串解析成JS代码并执行。但是,eval...

    JavaScript的strict模式与with关键字介绍

    use strict是严格模式的标识,它可以通过在脚本文件或函数首行添加"use strict";来启用。在引入严格模式时,JavaScript还废除了with语句。with语句的作用在于,它会为一段代码设定一个默认的对象,之后代码块内的...

    前端开源库-strict-mode

    "strict mode"(严格模式)是JavaScript中一个非常重要的概念,它改变了代码的执行方式,使得代码更加安全、可靠,并且有助于发现潜在的问题。在前端开源库中启用严格模式,可以显著提升代码质量和维护性。 严格...

    use-strict-cli:从目录中的所有JavaScript文件添加或删除“使用严格”的命令

    例如,如果您尝试在Node.js 4中使用let语句,那么如果JavaScript文件没有“ use strict”,则会看到此错误: SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside ...

    Canvas.js:html5 canvas的简单类包装器(警告Canvas当前仅在chrome中使用“ use strict”)

    Canvas当前仅在chrome中使用“ use strict”) 例子: var id = 'myCanvas'; // id of canvas to which bind class var c = new Canvas(id); // crate new instance for canvas to use // Canvas is chainable ...

    JavaScript文档

    这个文档可能会详细介绍新增的语法特性,如严格模式(use strict)、对象字面量的属性简写、数组和对象的扩展操作符等,还有对JSON(JavaScript Object Notation)的支持,以及函数参数的默认值、解构赋值等高级用法...

    JavaScript 规范

    在JavaScript代码中启用严格模式非常简单,只需要在代码顶部添加`'use strict';`即可。 **不推荐的写法**: ```javascript // 脚本开始 'use strict'; (function () { // 你的代码从这里开始 }); ``` **推荐的...

    Javascript.info Ebook Part 1 The JavaScript language (2019).pdf

    文档首先介绍了JavaScript的基础知识,如现代模式的使用,以及`use strict`指令,这个指令用于启用严格模式,帮助开发者写出更好的JavaScript代码。 紧接着介绍了基本的编程元素,包括: - 代码结构,如变量声明和...

    深入JavaScript严格模式:最佳实践与应用指南

    启用严格模式非常简单,只需在脚本或函数的开始处添加`"use strict";`指令即可。 ##### 3.1 全局范围内启用 在脚本的顶部添加`"use strict";`,可以使整个脚本文件在严格模式下运行。 ```javascript "use strict";...

    JavaScript5,JavaScript 5文档,JavaScript 5资料

    1. **严格模式**:ES5引入了“use strict”指令,允许开发者启用严格模式,这是一种更严格的代码执行模式,它可以检测并防止一些常见的编程错误,如未声明的变量、删除全局变量等。 2. **对象属性的访问器**:在ES5...

    JAVASCRIPT基础手册.rar

    此外,严格模式('use strict')有助于开发者编写更安全、更少错误的代码。 总之,JavaScript作为Web开发不可或缺的一部分,从基础语法到高级特性,从DOM操作到异步编程,都有深入研究的价值。这份“JavaScript基础...

    javascript教程

    ECMAScript 5是JavaScript的核心标准,于2009年发布,引入了许多新特性,如严格模式('use strict')、对象字面量的getter和setter、JSON支持以及数组和对象的方法扩展等。学习这部分内容,你将了解到如何利用这些...

Global site tag (gtag.js) - Google Analytics