详细讲解JS严格模式知识点有哪些?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了详细讲解JS严格模式知识点有哪些?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2026字,纯文字阅读大概需要3分钟。
内容图文
![详细讲解JS严格模式知识点有哪些?](/upload/InfoBanner/zyjiaocheng/289/09a43e43c0474751b35fa9de099e0c25.jpg)
所谓严格模式其实就是一个不会赋值给任何变量的字符串 “use strict”
如果在全局作用域下 给出这个提示,那整个脚本将采用严格模式。也可以只在函数中打开严格模式
1.严格模式下没有全局变量
a="test"
严格模式下会报错,非严格模式下正常
2.删除变量
var 有三种声明的情形
var 声明的全局变量
var 声明的局部变量
eval()中声明的全局变量
第一种和第二种情况是无法用 delete删掉的。
首先第一种情况声明的全局对象虽然是windows的属性,但这个属性的configurable=false 因此是无法删除的
第二种情况 局部变量更不行了,连依附的对象是谁都不知道,怎么删除
第三种情况eval()稍后会说到。
回归正题。也就是说非严格模式下,可以删除变量,但是会失败返回false.
严格模式下删除变量会报错。
3.对象
在下列情况下操作对象会报错
为只读属性赋值会报错
对不可配置的属性使用delete 会报错
为不可扩展的对象添加属性会报错
在使用对象字面量的时候,属性名必须唯一。比如
非严格模式下会默认取值第二个,严格模式下会报错。
4.函数
严格模式要求函数参数名称必须唯一
在非严格模式下,这个函数声明不会报错,通过参数名只能访问到第二个参数,第一个参数得通过arguments去访问。
arguments在两种模式下也有所不同
在非严格模式下,修改命名参数的值会反映到arguments对象中,在严格模式下两个值是独立的。
淘汰了 arguments.callee(引用函数本身),arguments.caller(引用调用函数)。
严格模式下函数名不能使用js保留字
**严格模式下只能在脚本的顶级和在函数内部声明函数,在if语句中声明函数会导致语法错误。**
5.this
在非严格模式下使用函数的apply(),call(),传入null 或者undefined值会被转换为全局对象。在严格模式下,函数的this始终是指定的值,无论指定的是什么值。
输出1,严格模式下this就指代的就是null,null没有a属性,就会报错。上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
通过使用vue如何才能实现添加mp3音频文件
通过JS中利用FileReader如何实现上传图片前本地预览功能
根据select标签设置默认选中的选项方法该怎么做?
以上就是详细讲解JS严格模式知识点有哪些?的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的详细讲解JS严格模式知识点有哪些?全部内容,希望文章能够帮你解决详细讲解JS严格模式知识点有哪些?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。