严格模式下禁止 this 指向全局变量

本文详细介绍了JavaScript中的严格模式,包括其意义、影响及设立目的。解释了如何通过使用严格模式来增强代码的安全性和效率,以及它如何为未来的JavaScript版本提供支持。

'use strict';

一、严格模式的意义:通过严格模式,会在函数内部进行更严格的错误条件检测

二、严格模式的影响

    ① 所有的变量必须使用var 关键字声明
    ② 不能使用delete关键字删除全局变量 ,以前默认删除失败,严格模式下直接报错
    ③ 在对象中不允许有同名的属性
    ④ 函数的参数必须唯一(不能出现同名的参数)
    ⑤ arguments对象的行为不同,在非严格模式下修改形参的值会反映到arguments中,而严格模式下则相对独立
    ⑥ 禁用了argument.callee和caller函数,他们一个引用函数本身,一个引用调用函数
    ⑦ 不能在if语句中声明函数
    ⑧ 禁止使用eval和argument作为标识符
    ⑨ 修正this的值,在严格模式下,函数this的值始终是指定的值,无论指定的是什么值。
    10 禁用了with语句
    11 去掉了JavaScript中的八进制字面量(以0开头的八进制字面量是无效的语法)

    *严格模式下禁止 this 指向全局变量,会指向undefined

设立"严格模式"的目的,主要有以下几个:

  - 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

  - 消除代码运行的一些不安全之处,保证代码运行的安全;

  - 提高编译器效率,增加运行速度;

      -这种语法实现了向后兼容模式,支持严格模式的引擎检测到关键字会启动严格模式,不支持的引擎就当时遇到了一个没有赋值的字符串,做忽略处理。

  - 为未来新版本的Javascript做好铺垫。

转载于:https://my.oschina.net/u/2949632/blog/820204

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值