Javascript use strict

阅读数:84 评论数:0

跳转到新版页面

分类

html/css/js

正文

ECMAscript 5添加了第二种运行模式:严格模式(strict mode)。

//针对单个脚本   
<script>
  "use strict";
  console.log("这是严格模式。");
</script>
//针对单个函数
function strict(){
    "use strict";
    return "这是严格模式。";
  }
  function notStrict() {
    return "这是正常模式。";
  }
//

(1)全局变量显示声明

在正常模式中,如果一个变量没有声明就赋值,默认是全局变量。严格模式禁止这种用法,全局变量必须声明。

"use strict";
  v = 1; // 报错,v未声明
  for(i = 0; i < 2; i++) { // 报错,i未声明
  }

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

function f(){
    return !this;
  } 
  // 返回false,因为"this"指向全局对象,"!this"就是false
  function f(){ 
    "use strict";
    return !this;
  } 
  // 返回true,因为严格模式下,this的值为undefined,所以"!this"为true。

(3)禁止删除变量

严格模式下无法删除变量,只有configurable设置为true的对象属性,才能删除 。

"use strict";
  var x;
  delete x; // 语法错误
  var o = Object.create(null, {'x': {
      value: 1,
      configurable: true
  }});
  delete o.x; // 删除成功

(4)函数不能有重名的参数

"use strict";
  function f(a, a, b) { // 语法错误
    return ;
  }



相关推荐

一、script标签属性 async 表示立即下载该脚本,但不妨碍页面中的其他操作,只对外部文件有效。 charset 与src属性一起使用,告诉浏览器用来编码这个javascript程序的

Javascript中, !表示运算符"非", 如果变量不是布尔类型, 会将变量自动转化为布尔类型

一、基本用法 Object.assign方法用于对象的合并,将源对象的所有可枚举属性复制目标对象。 <

一、window对象 在javascript中,一个浏览器窗口就是一个window对象,window对象以及这些子对象,由于都是用于操作浏览器窗口,所以我们又称为BOM(Browser Object

Math.random()方法会返回介于0(包含)~1(不包含)之间的一个随机数。 舍掉小数点后的数值的方法有很多,如parseInt(),Math.ceil(),Math.flo

一、概述 所有语言中的代理,其本实现的是对原对象的操作的拦截和一些自定义行为。 二、语法  const p = new Proxy(target, handler) 1、target 可以是任何类型的

一、概述 函数实际上是对象,每个函数都是Function类型的实例,而且与其他引用类型一样具有属性和方法,因此函数名实际上也是一个指向函数对象的指针,因为函数名是指针,所以js没有函数重载。 func

navigator.language 属性返回一个表示浏览器当前语言环境的字符串,通常是一个 BCP 47 语言标签。这个语言标签由两个部分组成:语言代码和可选的地区代码。 下面是一个示例代码,展示了

一、概述 页面加载完成有两种事件: 1、ready事件 表示文档结构已经加载完成(不包含图片等非文字媒体文件) 2、onload事件 指示页面包含图片等文件在内的所有元素都加载完成。 二、jQuery

1、禁止复制 οncοpy="document.selection.empty()" // 或者 οncοpy="return false" 2、禁止粘贴 onpaste="return false"