开发者社区> 问答> 正文

JS 严格模式和正常模式

JS 严格模式和正常模式

展开
收起
茶什i 2019-11-21 15:37:53 1046 0
1 条回答
写回答
取消 提交回答
  • 严格模式使用"use strict";

    作用:
    消除 Javascript 语法的一些不合理、不严谨之处,减少一些怪异行为;
    消除代码运行的一些不安全之处,保证代码运行的安全;
    提高编译器效率,增加运行速度;
    为未来新版本的 Javascript 做好铺垫。

    表现:
    严格模式下, delete 运算符后跟随非法标识符(即 delete 不存在的标识符),会抛出语法错误; 非严格模式下,会静默失败并返回 false
    严格模式中,对象直接量中定义同名属性会抛出语法错误; 非严格模式不会报错
    严格模式中,函数形参存在同名的,抛出错误; 非严格模式不会
    严格模式不允许八进制整数直接量(如:023)
    严格模式中,arguments 对象是传入函数内实参列表的静态副本;非严格模式下,arguments 对象里的元素和对应的实参是指向同一个值的引用
    严格模式中 eval 和 arguments 当做关键字,它们不能被赋值和用作变量声明
    严格模式会限制对调用栈的检测能力,访问 arguments.callee.caller 会抛出异常
    严格模式 变量必须先声明,直接给变量赋值,不会隐式创建全局变量,不能用 with,
    严格模式中 call apply 传入 null undefined 保持原样不被转换为 window

    2019-11-21 15:43:04
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载