zoukankan      html  css  js  c++  java
  • js严格模式“use strict”

    js的严格模式会放弃js中的一些不正规的写法,参考 http://www.cnblogs.com/God-Shell/p/3139329.html;

    使用声明"use  strict"字符串可以启动js严格模式的检查,作用方式分为两种。

    1 全局开启严格模式检查

    那么这个"use  strict"字符串可以声明到<script>标记(javascript文件也可以看做单独的<script>标记)内的最顶部,如下:

    <script>
         "use strict"
         function a() {
                xxx
         }
    
    </script>

    这样认为在整个<script>标记内开启严格模式。如果该<script>代码块中调用了其它<script>代码块中的代码,那么存在另一个<script>代码块中的代码也不会由于该<script>中声明了"use  strict"而进行严格检查,除非另一个代码块中仍然在最顶端存在"use  strict";

    2 方法内部开启严格模式检查

    如果将"use  strict"字符串声明到方法内部,如下:

    function a() {
        "use strict"
         var a=1;
         b();
    }
    function b() {
         arguments.callee.caller;//该代码不符合严格模式的用法
    }

    就是在a方法内部使用严格模式,而不会去干涉b方法中的代码是否遵循严格模式。如果b方法中涉及arguments.callee.caller代码,寻找上级的调用方法,并且刚好寻找到a方法所在的调用,则在IE10及以上的浏览器中会抛出:“strict 模式下不允许访问函数或参数对象的"caller"属性”的异常,而chrome浏览器会提示caller为空,并不抛出异常。如果在全局模式下使用如arguments.callee.caller这类代码,无论出现在任何调用位置,IE chrome都会抛出异常***

  • 相关阅读:
    第一阶段-意见评论
    团队冲刺第15天
    团队冲刺第14天
    第十三周进度报告
    团队冲刺第13天
    团队冲刺第12天
    团队冲刺第11天
    SCRUM第二阶段第九天
    SCRUM第二阶段第八天
    SCRUM第二阶段第七天
  • 原文地址:https://www.cnblogs.com/zzq-include/p/5546525.html
Copyright © 2011-2022 走看看