JS严格模式原理与用法实例分析


Posted in Javascript onApril 27, 2020

本文实例讲述了JS严格模式原理与用法。分享给大家供大家参考,具体如下:

使用 "use strict" 指令

"use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。

它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略。

支持严格模式的浏览器:

Internet Explorer 10 +、 Firefox  4+ Chrome  13+、 Safari 5.1+、 Opera 12+。

严格模式声明

严格模式通过在脚本或函数的头部添加 "use strict"; 表达式来声明。

实例中我们可以在浏览器按下 F12 (或点击"工具>更多工具>开发者工具")  开启调试模式,查看报错信息。

为什么使用严格模式:

  • 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
  • 消除代码运行的一些不安全之处,保证代码运行的安全;
  • 提高编译器效率,增加运行速度;
  • 为未来新版本的Javascript做好铺垫。

严格模式的限制

1、不允许使用未声明的变量;

2、不允许删除变量或对象;

3、不允许删除函数;

4、不允许变量重名;

5、不允许使用八进制;

6、不允许使用转义字符;

7、不允许对只读属性赋值;

8、不允许对一个使用getter方法读取的属性进行赋值;

9、不允许删除一个不允许删除的属性;

10、变量名不能使用'eval'字符串;

11、变量名不能使用'arguments'字符串;

12、不允许使用以下这种语句:

<script>
"use strict";
with (Math){x = cos(2)}; // 报错
</script>

13、由于一些安全原因,在作用域 eval() 创建的变量不能被调用:

<script>
"use strict";
eval ("var x = 2");
alert (x);        // 报错
</script>

14、禁止this关键字指向全局对象。

function f(){
 return !this;
} 
// 返回false,因为"this"指向全局对象,"!this"就是false
function f(){ 
 "use strict";
 return !this;
} 
// 返回true,因为严格模式下,this的值为undefined,所以"!this"为true。

感兴趣的朋友还可以使用本站在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行结果。

更多关于JavaScript相关内容还可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
广告切换效果(缓动切换)
May 27 Javascript
jQuery选择头像并实时显示的代码
Jun 27 Javascript
javascript重复绑定事件造成的后果说明
Mar 02 Javascript
终于解决了IE8不支持数组的indexOf方法
Apr 03 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
Sep 18 Javascript
在javascript中实现函数数组的方法
Dec 25 Javascript
JavaScript操作HTML元素和样式的方法详解
Oct 21 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
Oct 31 Javascript
js实现图片加载淡入淡出效果
Apr 07 Javascript
Vue配合iView实现省市二级联动的示例代码
Jul 27 Javascript
浅谈在Vue.js中如何实现时间转换指令
Jan 06 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
Apr 26 Javascript
详解使用mocha对webpack打包的项目进行&quot;冒烟测试&quot;的大致流程
Apr 27 #Javascript
详解elementUI中input框无法输入的问题
Apr 27 #Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
Apr 27 #Javascript
Node.js API详解之 tty功能与用法实例分析
Apr 27 #Javascript
React.js组件实现拖拽排序组件功能过程解析
Apr 27 #Javascript
element 中 el-menu 组件的无限极循环思路代码详解
Apr 26 #Javascript
微信小程序个人中心的列表控件实现代码
Apr 26 #Javascript
You might like
PHP 开源AJAX框架14种
2009/08/24 PHP
基于php 随机数的深入理解
2013/06/05 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
smarty简单入门实例
2014/11/28 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
使用Python更换外网IP的方法
2018/07/09 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
详解django中使用定时任务的方法
2018/09/27 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
关心下一代工作先进事迹
2014/08/15 职场文书
教师群众路线心得体会
2014/11/04 职场文书
通知格式
2015/04/27 职场文书
美容院员工规章制度
2015/08/05 职场文书
早上好问候语大全
2015/11/10 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL
python批量创建变量并赋值操作
2021/06/03 Python
Java中的随机数Random
2022/03/17 Java/Android
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android