Javascript教程usestrict严格模式详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript教程usestrict严格模式详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3716字,纯文字阅读大概需要6分钟。
内容图文
严格模式:由ECMA-262规范定义的JavaScript标准,对javascrip的限制更强。这篇文章主要介绍了Javascript 严格模式use strict详解 ,需要的朋友可以参考下严格模式:由ECMA-262规范定义的JavaScript标准,对javascrip的限制更强。
(非严格的模式,被称为“马虎模式/稀松模式/懒散模式”。)
一、严格模式的使用
严格模式可以在脚本或函数级别实现。(即全局和局部模式)
1.全局
在js文件的最前面添加 "use strict"
2.局部
在函数内部添加 "use strict",如下
二、严格模式和非严格模式的对比
1.严格模式下,无法删除(delete)变量(delete是不合格的标识符))。非严格模式下会删除失败返回false
2.严格模式中,函数形参存在同名的,抛出错误; 非严格模式不会
严格模式下
非严格模式下
3.严格模式不允许八进制整数直接量(如下)。非严格模式下不会报错。
4.严格模式中,arguments对象是传入函数内实参列表的静态副本(即不再追踪参数的变化);非严格模式下,arguments对象里的元素和对应的实参是指向同一个值的引用。
严格模式下
非严格模式下
5.严格模式中 eval和arguments当做关键字,它们不能被赋值和用作变量声明
6.严格模式会限制对调用栈的检测能力,访问arguments.callee,arguments.callee.caller会抛出异常
严格模式下:
非严格模式下:
caller:在一个函数调用另一个函数时,被调用函数会自动生成一个caller属性,指向调用它的函数对象。如果该函数当前未被调用,或并非被其他函数调用,
则caller为null。如下:
严格模式下:
非严格模式下:
7.严格模式变量必须先声明,直接给变量赋值,不会隐式创建全局变量,不能用with。
严格模式下
解释:道运行脚本时,首先是编译,然后再执行。显然在编译的时候,所以就不能在编译时确定with语句块中的变量到底归属哪个对象。[with语句块中的变量是(cl)的属性
还是上一层变量作用域链中的变量。]。只能在执行时才能确定(c1)是Clothes的一个实例。这与严格模式有编译时就检查变量是否定义冲突,所以严格模式不会with语句的使用。
扩展:with语句的使用(用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性。)
严格模式中 call apply传入null undefined保持原样不被转换为window
以上就是Javascript教程use strict严格模式详解的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的Javascript教程usestrict严格模式详解全部内容,希望文章能够帮你解决Javascript教程usestrict严格模式详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。