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

    除了正常运行模式之外,ECMAScript5还引入了第二种运行模式:严格模式(strict mode)模式。严格模式是为了JavaScript定义了一种不同的解析与执行模型。在严格模式下,ECMASript3中的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误。

    引入严格模式的目的:

    1.消除JavaScript语法的一些不合理,不规范,不严谨之处,减少一些怪异行为;
    
    2.消除一些不确定的行为,保证代码运行的安全;
    
    3.提高编译器效率,增加运行速度;
    
    4.为未来新版本的Javascript做好铺垫。
    

    在严格模式下,JavaScript的执行执行结果会有很大的不同,支持严格模式的浏览器包括:

    IE10+,Firefox4+,Safari5.1+,Opera12+和Chrome。
    

    如果想要在整个脚本启用严格模式,可以在顶部添加如下代码:

    “use strict”
    
    这行代码看起来更新是字符串,而且也没有赋值给任何变量,但其实它是一个编译指示(pragma),用于告诉支持的JavaScript引擎切换到严格模式,这是为了不破坏ECMASript3语法而特意选定的语法。
    
    需要注意的一点是将“use strict“脚本文件必须要放在第一行,则整个脚本文件都以”use strict“严格模式运行,假如”use strict“不在第一行,则不在运行严格模式,在这样的情况下,整个脚本都以”正常模式运行“。如果你没有控制页面中所有脚本的权力,建议只在需要测试的特定函数中开启严格模式。
    

    如何调用javaScript严格模式

    "严格模式"有两种调用方法,使用于不同的场合

    1.针对整个脚本文件
    
    <script>
        "use strict"
        console.log("这是严格模式")
    </script>
    
    <script>
    console.log("这是正常模式")
    </script>
    
    2.针对单个函数
    
    将"use strict"放在函数体的第一行,则整个函数以"严格模式"运行。
    
    function strict(){
        "use strict";
        return "这是严格模式。";
    }
    function notStrict() {
        return "这是正常模式。";
    }
    
    3.脚本文件的变通写法
    
    因为第一种调用方法不利于文件合并,所以更好的做法是,借用第二种方法,将整个脚本文件放在一个立即执行的匿名函数之中。
    
    (function (){
        "use strict";
        // some code here
    })();
    

    全局变量显式声明

    在正常模式中,如果一个变量没有声明就赋值,默认是全局变量。严格模式禁止这种用法,全局变量必须显式声明。
    
    "use strict";
     v = 1; // 报错,v未声明
    for(i = 0; i < 2; i++) { 
        // 报错,i未声明
    }
    
    因此,严格模式下,变量都必须先用var命令声明,然后再使用。
  • 相关阅读:
    值类型、引用类型的区别
    SharePoint Server 2013 Excel Web Access无法显示
    SharePoint 2013报错之“指定的文件不是有效的电子表格或者没有包含要导入的数据”
    SharePoint 2013备份方法整理
    SQL 2005报错之Restore fail for Server 'DatabaseServerName'.
    SQL Server 2012自动备份
    SharePoint 2013在浏览器中打开pdf文档
    摸鱼,搞RW
    蛋疼的远程声音,这次用蓝牙试试看
    Win10 IoT Core 更改密码(PowerShell)
  • 原文地址:https://www.cnblogs.com/dwj0931-node/p/5611104.html
Copyright © 2011-2022 走看看