下面是对JavaScript中严格模式的整理,严格模式会对代码会有更高的要求,希望可以帮助到有需要的小伙伴。

一、严格模式概述

1、严格模式是什么

严格模式是JavaScript中的一种限制性更强的变种方式。

严格模式不是一个子集:它在语义上与正常代码有着明显的差异。
不支持严格模式的刘览器与支持严格模式的刘览器行为上是不一样的,所以不能在未经严格模式特性测试情况下使用严格模式。
严格模式可以与非严格模式共存,所以脚本可以逐渐的选择性加人严格模式。

2、严格模式的目的

  1. 严格模式会将JavaScript陷阱直接变成明显的错误
  2. 严格模式修正了一些引擎难以优化的错误:同样的代码有些时候严格模式会比非严格模式下更快
  3. 严格模式仅用了一些可能在未来版本中定义的语法

二、开启严格模式

1、开启全局严格模式

在JavaScript中开启严格模式:

在所有代码之前,定义一个不会赋给任何变量的字符串 “use strict”

// 不开启严格模式
/*
v = 100;
console.log(v); // 100function fn(){z = 200;console.log(z);
}
fn();  // 200
*/// 开启严格模式/*
// 1. 开启严格模式 - 作用于全局作用域
"use strict"
// 定义一个变量 - 不使用var关键字
// a = 100;
// console.log(a);   // ReferenceError: a is not definedfunction fn(){// 2. 开启严格模式 - 作用域函数作用域"use strict"b = 100;console.log(b);
}fn();  // ReferenceError: b is not defined*//*
"use strict"
function fn(){c = 200;console.log(c);
}
fn();  // ReferenceError: c is not defined
*//*
v = 100;
console.log(v); // 100function fn(){"use strict"v = 200;  // 200 是对全局变量v的重新赋值console.log(v);
}
fn();
*/e = 100;
console.log(e); // 100function fn(){"use strict"v = 200;  // ReferenceError: v is not definedconsole.log(v);
}
fn();

2、函数开启严格模式

在函数作用域中定义一个不会赋给任何变量的字符串 “use strict”

function fn(){// 2. 开启严格模式 - 作用域函数作用域"use strict"b = 100;console.log(b);
}

JavaScript面向对象 - 严格模式相关推荐

  1. javascript 面向对象编程(工厂模式、构造函数模式、原型模式)

    javascript 面向对象编程(工厂模式.构造函数模式.原型模式) CreateTime--2018年3月29日17:09:38 Author:Marydon 一.工厂模式 /*** 工厂模式*/ ...

  2. JavaScript 面向对象编程(三) —— 函数进阶 / 严格模式 / 高阶函数 / 闭包 / 浅拷贝和深拷贝

    本篇为 JavaScript 进阶 ES6 系列笔记第三篇,将陆续更新后续内容.参考:JavaScript 进阶面向对象 ES6 :ECMAScript 6 入门 系列笔记: JavaScript 面 ...

  3. JavaScript面向对象编程

    自从有了Ajax这个概念,JavaScript作为Ajax的利器,其作用一路飙升.JavaScript最基本的使用,以及语法.浏览器对象等等东东在这里就不累赘了.把主要篇幅放在如何实现JavaScri ...

  4. 《JavaScript面向对象精要》读书笔记

    JavaScript(ES5)的面向对象精要 标签: JavaScript 面向对象 读书笔记 2016年1月16日-17日两天看完了<JavaScript面向对象精要>(参加异步社区的活 ...

  5. (二)Javascript面向对象编程:构造函数的继承

    Javascript面向对象编程:构造函数的继承 这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例. 今天要介绍的是,对象之间的"继承&q ...

  6. 《JavaScript面向对象精要》——第1章 原始类型和引用类型1.1 什么是类型

    本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.1节,作者:[美]Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区" ...

  7. javaScript面向对象表示

    这里主要简单写一下javaScript面向对象的不断发展的一些写法和优缺点.直接开门见山. 1.最简单的方式 创建Object的实例,为它添加属性和方法 var car = new Object(); ...

  8. JavaScript面向对象编程深入分析

    JavaScript面向对象编程深入分析 一. Javascript 面向对象编程:封装 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又 ...

  9. 《javascript面向对象编程指南》读书笔记

    <javascript面向对象编程指南>读书笔记 <javascript面向对象编程指南>读书笔记 第一章 面向对象的JavaScript 第二章 基本数据类型与流程控制 变量 ...

最新文章

  1. 业务上云后,58到家运维平台的演进之路(含成本规划与监控建议)
  2. MongoDB固定集合(capped collection)
  3. 3800元!爆料大神怒赞谷歌Pixel 6:这是今年最好看手机!
  4. Linux内核性能架构:perf_event
  5. 帝国cms怎么搭建python环境_Python 库/模块的pip安装和IPython的使用
  6. web端业务数据管理平台+Axure运营数据管理平台+月度数据统计分析+年度排行榜数据统计页面分析+运营大数据统计管理后台+用户信息管理+Axure通用web端高保真交互业务数据管理平台
  7. 高并发推荐系统架构设计实践
  8. 显示1至20相同数字相乘的结果,若值比50小就不显示
  9. 《转》武​汉​的​I​T​公​司
  10. [macOS] git忽略所有的.DS_Store文件
  11. ORA-28002 Oracle口令过期
  12. 2022下半年软考冲刺,这些资料就是45分通关密码
  13. Tomcat安装与配置教程(图文教学)
  14. msm8937 64位开发概要
  15. 监督学习、无监督学习、半监督学习、强化学习、自监督学习
  16. Unity3d场景快速烘焙【2020】
  17. 教你快速识别网络项目的骗术
  18. 苹果支付在哪里设置_你会用苹果手机吗?这些快捷指令快速设置一下,好用度提升10倍...
  19. 41首送别诗词,首首经典,值得为孩子们收藏!
  20. HTML超好看樱花飘落404页面源码+带时间

热门文章

  1. 【转】现代浏览器的工作原理
  2. ios开发--编码格式
  3. 了解HTML CSS格式化排版 文字排版
  4. NetBeans Weeldy News 刊号 # 53 - Apr 23, 2009
  5. HDU1084 What Is Your Grade?【排序+水题】
  6. HDU5688 Problem D【字符串排序+MAP】
  7. CCF201604-2 俄罗斯方块(100分)
  8. Matlab Tricks(二十五)—— plot 属性
  9. caffe 源码阅读与运行流程
  10. C 语言 —— ! 和 ~(感叹号和波浪号)