zoukankan      html  css  js  c++  java
  • JS严格模式

    <script>

    "use strict";

    .....

    </script>

    应用场景:1.针对整个脚本文件。2.针对单个函数。

        必须放在第一行,否则无效。

    支持浏览器:IE10+、chrome等。

    表现:

    1.全局变量显式声明

    在正常模式中,如果一个变量没有声明就赋值,默认是全局变量。严格模式禁止这种用法,全局变量必须显式声明。

    下面代码在严格模式下会报错

    <script>

    "use strict";

    str = 'helllo';

    alert(str);

    </script>

    2.禁止八进制表示法

    正常模式下,整数的第一位如果是0,表示这是八进制数,比如012等于十进制的10。严格模式禁止这种表示法,整数第一位为0,将报错。

     3.新增一些保留字

      implements, interface, let, package, private, protected, public, static, yield。

      使用上述保留字作为变量名会报错。

     4.eval作用域

    正常模式下,Javascript语言有两种变量作用域(scope):全局作用域和函数作用域。严格模式创设了第三种作用域:eval作用域。

    严格模式下,eval语句本身就是一个作用域,不再能够生成全局变量了,它所生成的变量只能用于eval内部。

    <script>
      "use strict";
      var x = 2;
      console.info(eval("var x = 5;x")); 
      console.info(x);                     
    </script>

    严格模式下,全局下的x仍然是2。因为eval中定义的x其实是在eval作用域中新定义了x并赋值。

    正常模式下,全局下的x变为5。eval中的定义并赋值其实只是对全局下x的赋值操作。

    参考链接:

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

    http://jingyan.baidu.com/article/3065b3b6979b9fbecff8a4f8.html

  • 相关阅读:
    MXNet中bucket机制注记
    MXNet中LSTM例子注记
    Bellman update中Value Iteration收敛证明
    关于分类问题中的激活函数特性影响
    mxnet包含NDArray的列表更新
    FeatureMap Viewer以及中心化对统计分布变化的影响讨论
    [ufldl]Supervised Neural Networks
    【ufldl tutorial】Convolution and Pooling
    【ufldl tutorial】Softmax Regression
    【leetcode刷题笔记】Rotate Image
  • 原文地址:https://www.cnblogs.com/wangxuehao/p/6550595.html
Copyright © 2011-2022 走看看