zoukankan      html  css  js  c++  java
  • JavaScript严格模式有什么不同

    看ES6,瞄到“严格模式”,问了下自己什么是“严格模式”?答案好像不是很明朗,遂总结如下:

    严格模式声明:“use strict”;

     

    1、禁止变量未声明就赋值

    2、限制动态绑定(属性和方法归属哪个对象在编译阶段就要确定)

    1)禁止使用with

    2)创建eval作用域,eval内声明的变量外部访问不到

    3、增强的安全措施

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

    2)禁止在函数内部遍历调用栈(函数内访问functionName.caller/functionName.arguments均报错)

    4、禁止删除变量(只有configurable设置为true的对象属性才能被删除)

    5、对只读属性赋值将会报错

    6、重名错误

    1)函数参数不能重名

    7、禁止以零(0)开头的8进制表示法,支持数字0加字母o:“0o”为前缀表示八进制数

    8、arguments的限制

    1)arguments本身不能被赋值 ,但是arguments[x]仍然可以

    2)arguments不再追踪参数的变化,在函数内改变参数值,arguments依然指向旧值

    3)禁止使用arguments.callee,匿名函数无法调用自己了

    9、函数必须在顶层声明

    10、不允许使用以下保留字做变量名

    1)implements

    2)interface

    3)let

    4)package

    5)private

    6)protected

    7)public

    8)static

    9)yield

     

    详细参考:

    http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Strict_mode

  • 相关阅读:
    Linux终端以及bash
    初识VIM
    基础命令
    目录结构和命令
    Xshell连接Centos7.5和yum
    Linux的发展史和centos7的安装
    学习方法以及计算机硬件基础
    mysql、MariaDB的简单操作
    yum 软件管理器
    基础面试题
  • 原文地址:https://www.cnblogs.com/wangmeijian/p/6994636.html
Copyright © 2011-2022 走看看