版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/79249309
/***
 *使用严格模式的原因:
 *
 ①:消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
 ②:消除代码运行的一些不安全之处,保证代码运行的安全;
 ③:提高编译器效率,增加运行速度;
 ④:为未来新版本的Javascript做好铺垫。
 */

//不允许使用未声明的变量:
"use strict";
z = 3.14;                // 报错 (z 未定义)

//对象也是一个变量。
"use strict";
z = {p1:10, p2:20};      // 报错 (z 未定义)

//不允许删除变量或对象。
"use strict";
var x = 3.14;
delete x;                // 报错:Uncaught SyntaxError: Delete of an unqualified identifier in strict mode

//不允许删除函数。
"use strict";
 function func(n1, n2) {};
delete func;                // 报错

// 不允许变量重名:
"use strict";
function func(n1, n2) {};   // 报错

// 不允许使用八进制:
"use strict";
var x = 010;             // 报错:error

//不允许使用转义字符:
"use strict";
var x = \010;            // 报错

// 不允许对只读属性赋值:
"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});

obj.x = 3.14;            // 报错:Uncaught TypeError: Cannot assign to read only property 'x' of object '#<Object>'

//不允许对一个使用getter方法读取的属性进行赋值
"use strict";
var obj = {get x() {return 0} };

obj.x = 3.14;            // 报错:ncaught TypeError: Cannot set property x of #<Object> which has only a getter

// 不允许删除一个不允许删除的属性:
"use strict";
delete Object.prototype; // 报错

//变量名不能使用 "eval" 字符串:
//eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
"use strict";
var eval = 3.14;         // 报错

//变量名不能使用 "arguments" 字符串:
"use strict";
var arguments = 3.14;    // 报错

//禁止this关键字指向全局对象。
function f(){
    return !this;
}
// 返回false,因为"this"指向全局对象,"!this"就是false

function f(){
    "use strict";
    return !this;
}
// 返回true,因为严格模式下,this的值为undefined,所以"!this"为true。

JavaScript进阶【二】JavaScript 严格模式(use strict)的使用相关推荐

  1. JavaScript进阶(二)

    JavaScript进阶(二) 2019版黑马程序员javaScript进阶面向对象ES6 122集教程,哔哩哔哩链接:https://www.bilibili.com/video/BV1Kt411w ...

  2. 网站开发综合技术 一 JavaScript简介 二JavaScript语法

    第1部分 JavaScript简介 1.JavaScript它是个什么东西? 它是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 2.它与Java有什么关系? 没有什么直接联系,java是S ...

  3. JavaScript进阶(四)

    JavaScript进阶(四) 2019版黑马程序员javaScript进阶面向对象ES6 122集教程,哔哩哔哩链接:https://www.bilibili.com/video/BV1Kt411w ...

  4. JavaScript进阶(三)

    JavaScript进阶(三) 2019版黑马程序员javaScript进阶面向对象ES6 122集教程,哔哩哔哩链接:https://www.bilibili.com/video/BV1Kt411w ...

  5. JavaScript进阶(一)

    JavaScript进阶(一) 2019版黑马程序员javaScript进阶面向对象ES6 122集教程,哔哩哔哩链接:https://www.bilibili.com/video/BV1Kt411w ...

  6. JavaScript入门(二)

    JavaScript入门(二) 哔哩哔哩链接:https://www.bilibili.com/video/BV1YW411T7GX?spm_id_from=333.999.0.0 七.代码讲解部分 ...

  7. JavaScript学习(七十二)—严格模式

    JavaScript学习(七十二)-严格模式 JavaScript除了提供正常模式外,还提供了严格模式,ES5的严格模式是采用具有限制性JavaScript变体的一种方式,即在严格条件下运行JS代码, ...

  8. JavaScript进阶必会的手写功能(二)

    JavaScript进阶必会的手写功能(一) 6. 手写浅拷贝 6.1 JavaScript数据类型分类 1. 简单数据类型: Number. String.Boolean.null.undefine ...

  9. Javascript 严格模式use strict详解

    一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. ...

  10. JavaScript 严格模式(use strict)

    使用 "use strict" 指令 "use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增. 它不是一条语句, ...

最新文章

  1. 政、企、学三方视角下的智慧城市发展 | 2020中关村论坛“人工智能与城市可持续发展论坛”成功举办...
  2. SSH实现新闻管理系统
  3. 二分查找对应的二叉树的成功和失败ASL
  4. HDU 3966 Aragorn's Story (树链剖分+线段树)
  5. Windows 下的批处理脚本基础——网络相关命令(用户操作命令、用户组操作命令)
  6. OA、CRM、进销存集成了,美女也不再愁了
  7. android插件化-apkplug中OSGI服务基本原理-08
  8. Windows 8.1 with Update MSDN 简体/英文/繁体
  9. linux用户间文件互传,linux之间的文件互传-scp命令
  10. 去除加粗的css,css如何取消加粗
  11. 每周论文精读04——A Survey on 3D Hand Pose Estimation: Cameras, Methods, and Datasets
  12. Qt编写地图综合应用12-路线查询
  13. python统计三国演义人物出场次数
  14. 计算机网络技术不会拼音,我爸不会拼音,怎样在电脑上学打字阿?
  15. Caporali HSK63A.H80.WE16
  16. win7系统如何映射服务器,教你win7系统映射网络驱动器的操作方法
  17. 店宝宝:巨头PK精品电商
  18. pyinstaller打包执行文件报错NameError: name ‘defaultParams‘ is not defined问题解决方案
  19. revit建模中两面墙贴在一起怎么插入门窗及隐框玻璃的做法
  20. 8.合并两个有序的数组

热门文章

  1. Maven实战05_背景案例学Maven模块化
  2. 论搜索方法,低效的你简直在浪费生命(二)
  3. PDF转换技巧之如何把文件转换为WPS?
  4. 11.2. simpara
  5. asp.net 调用(引用 Native dll 的)C++/CLI dll 的问题及解决
  6. swith 好久不用都忘记了
  7. 《WinForm开发系列之控件篇》Item31 MenuStrip(暂无)
  8. Linux一键编译,linux下一键编译安装MariaDB10.0.12
  9. python ftp 文件修改时间 乐贴_如何使用Python ftplib获取FTP文件的修改时间
  10. 我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!