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

    JavaScript严格模式的使用是规范js代码的一种行为,它对代码提出了更高的要求,会对代码进行错误检查,使js代码更加具有健壮性、安全性。

    我们平时使用的是一般模式。要进入严格模式,可以在js文件开头写上

    'use strict';

    或者在函数开头写上这一句,从而使得函数内部进入严格模式。从这里我们可以看出,函数内部具有自己的作用域。

    说起作用域,js的作用域可以分为全局作用域、函数作用域和eval的独立作用域,虽然ES5没有块级作用域的说法,但是块级作用域在ES6用let实现了。

    严格模式是向上兼容的。

    这里介绍几个严格模式下的要求:

    1.不允许使用with。原因是with写出来的代码可读性差,不推荐使用。(with里的代码块可以直接使用传入的对象的属性)

    2.不允许未被声明的变量被赋值。这点是为了防止变量在不经意间自动提升为全局变量。如

    var a = b = 1

    这句代码中b就被自动提升为全局变量。

    3.arguments变为参数的静态副本。

    如下面的示例,一般模式输出100,严格模式输出1。

    'use strict'
    function f(a){
        arguments[0] = 100
        return a
    }
    document.write(f(1))

    4.使用运算符delete删除一些不可以删除的东西(如参数、函数名、不可配置的属性等)报错。(delete原本是用来删除对象的属性的。)

    5.对象字面量重复属性名报错。

    6.禁止使用八进制字面量,如

    var a = 0123
    console.log(a)

    在一般模式下输出十进制数83,而严格模式下则报错。

    7.eval、arguments变为了关键字,不能用于函数名、变量。

    8.eval函数具有了独立作用域。(eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。)

    eval('var b = 2;')
    console.log(b)

    在一般模式下输出2,而严格模式下则报错。

  • 相关阅读:
    yii框架开启事务
    CI框架--事务
    Nginx负载均衡使用ip
    如果nginx启动失败,错误解决
    nginx使用ssl模块配置支持HTTPS访问【解决ssl错误】
    Nginx反向代理+负载均衡简单实现(https方式)
    nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37
    openssl生成ssl证书
    POJ 1955 Rubik's Cube
    CF卡技术详解——笔记
  • 原文地址:https://www.cnblogs.com/luoyihao/p/12227293.html
Copyright © 2011-2022 走看看