社区首页 >专栏 >JS篇(027)-JS 严格模式和正常模式的区别 参考答案:
严格模式使用"use strict";
作用:
- 消除 Javascript 语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的 Javascript 做好铺垫。
表现:
- 严格模式下, delete 运算符后跟随非法标识符(即 delete 不存在的标识符),会抛出语法错误;非严格模式下,会静默失败并返回 false
- 严格模式中,对象直接量中定义同名属性会抛出语法错误;非严格模式不会报错
- 严格模式中,函数形参存在同名的,抛出错误; 非严格模式不会
- 严格模式不允许八进制整数直接量(如:023)
- 严格模式中,arguments 对象是传入函数内实参列表的静态副本;非严格模式下,arguments 对象里的元素和对应的实参是指向同一个值的引用
- 严格模式中 eval 和 arguments 当做关键字,它们不能被赋值和用作变量声明
- 严格模式会限制对调用栈的检测能力,访问 arguments.callee.caller 会抛出异常
- 严格模式 变量必须先声明,直接给变量赋值,不会隐式创建全局变量,不能用 with,
- 严格模式中 call apply 传入 null undefined 保持原样不被转换为 window
本文参与
腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-01,如有侵权请联系
cloudcommunity@tencent.com 删除