博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS-严格模式、非严格模式
阅读量:6271 次
发布时间:2019-06-22

本文共 1059 字,大约阅读时间需要 3 分钟。

2018年11月14日晚上,我在“深入理解javascript”书上第一次知道“严格模式”“非严格模式”这2个名词;

“严格模式”使用指令:“use strict”;

这个指令我其实有经常看到,在其他人的js文件里。当然我是不知道含义的,且我也没有想过要去询问,写在那就在那吧,又不影响我。

今天做这个笔记的原因在于:既然在我学习中遇到了,那我就仔细的学习一下也还是不错的!!!!

为什么使用严格模式?

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

    1).消除代码运行的一下不安全之处,保证代码运行的安全;

    2).提高编译器效率,增加运行速度;

    3).为未来新版本的js做好铺垫。

2.“严格模式”提现了js更合理、更安全、更严谨的发展方向,包括IE10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。

3.另一方面,同样的代码,在“严禁模式”中,可能会有不一样的运行结果;一些在“正常模式”下可以运行的语句,在“严禁模式”下将不能运行。掌握这些内容,有助于更细致深入地理解js,让你成为更好的程序员。

0.严格模式其指令出现的位置:

0-1:直接写在<script></script>中的第一行;(表示该篇js都处于严格模式下)

0-2:写在方法中的第一行;(表示该方法下的代码格式都处于严格模式)   

  

1.严格模式下,不能使用未声明的变量

//严格模式

 

//非严格模式

 

//严格模式及非严格模式

 

2.严格模式下,不允许删除 变量或对象   (强调:只有configurable设置为true的对象属性,才能被删除。)

 

  

 

 3.严格模式下,不允许删除函数

  

4.严格模式下,不允许参数名相同

  

 5.严格模式下,不允许使用八进制

 

6.严格模式下,不允许使用转义字符

 

7.严格模式下,不允许对只读属性赋值

  

8.严格模式下,不允许对一个使用getter方法读取的属性进行赋值

  

9.严格模式下,不允许删除一个不允许删除的属性

  

10.严格模式下,变量名不能使用 "eval" 字符串

//严格模式下//非严格模式下

  

11.严格模式下,变量名不能使用 "arguments" 字符串

//严格模式下//非严格模式下

 

12.严格模式下,不允许使用以下这种语句

  

13.严格模式下,由于一些安全原因,在作用域 eval() 创建的变量不能被调用

  

 

 

转载于:https://www.cnblogs.com/liuqingxia/p/9963105.html

你可能感兴趣的文章
[Android Pro] Android权限设置android.permission完整列表
查看>>
如何对抗硬件断点--- 调试寄存器
查看>>
mybatis学习
查看>>
从不同层面看cocos2d-x
查看>>
Struts2技术详解
查看>>
MFC应用程序向导生成的文件
查看>>
Oracle体系结构之oracle密码文件管理
查看>>
【leetcode】Remove Element (easy)
查看>>
mysql多表查询及其 group by 组内排序
查看>>
alsa的snd_pcm_readi()函数和snd_pcm_writei()
查看>>
Android学习网站推荐(转)
查看>>
嵌入式根文件系统的移植和制作详解
查看>>
MEF部件的生命周期(PartCreationPolicy)
查看>>
LCD的接口类型详解
查看>>
nginx 基础文档
查看>>
LintCode: Unique Characters
查看>>
Jackson序列化和反序列化Json数据完整示例
查看>>
.net 中的DllImport
查看>>
nyoj 517 最小公倍数 【java睑板】
查看>>
include与jsp:include区别
查看>>