JavaScript 严格模式(use strict)用法实例分析


Posted in Javascript onMarch 04, 2020

本文实例讲述了JavaScript 严格模式(use strict)用法。分享给大家供大家参考,具体如下:

使用"use strict" 的目的是指定代码在严格条件下执行。

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

不允许使用未声明的变量。

"use strict";
myFunction();
function myFunction() {
  y = 3.14;  // 报错 (y 未定义)
}

在函数内部声明是局部作用域 (只在函数内使用严格模式):

x = 3.14;    // 不报错 
myFunction();
function myFunction() {
  "use strict";
  y = 3.14;  // 报错 (y 未定义)
}

不允许删除变量或对象

"use strict";
var x = 3.14;
delete x;        // 报错

不允许删除函数。

"use strict";
function x(p1, p2) {}; 
delete x;        // 报错

不允许变量重名:

"use strict";
function x(p1, p1) {};  // 报错

不允许使用八进制:

"use strict";
var x = 010;       // 报错

不允许使用转义字符:

"use strict";
var x = \010;      // 报错

不允许对只读属性赋值:

"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});
obj.x = 3.14;      // 报错

不允许删除一个不允许删除的属性:

"use strict";
delete Object.prototype; // 报错

变量名不能使用 "eval" 字符串:

"use strict";
var eval = 3.14;     // 报错

变量名不能使用 "arguments" 字符串:

"use strict";
var arguments = 3.14;  // 报错

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

为什么使用严格模式:

  • 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
  • 消除代码运行的一些不安全之处,保证代码运行的安全;
  • 提高编译器效率,增加运行速度;
  • "严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它。

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

Javascript 相关文章推荐
JavaScript 数组循环引起的思考
Jan 01 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
Mar 20 Javascript
深入领悟JavaScript中的面向对象
Nov 18 Javascript
tangram框架响应式加载图片方法
Nov 21 Javascript
jquery checkbox实现单选小例
Nov 27 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
Jun 11 Javascript
JavaScript实现经典排序算法之插入排序
Dec 28 Javascript
TypeScript入门-接口
Mar 30 Javascript
AngularJS 仿微信图片手势缩放的实例
Sep 28 Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 Javascript
浅谈Vue.js路由管理器 Vue Router
Aug 16 Javascript
JavaScript之Blob对象类型的具体使用方法
Nov 29 Javascript
vue 自定义组件的写法与用法详解
Mar 04 #Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 #Javascript
vue请求数据的三种方式
Mar 04 #Javascript
使用Vue 自定义文件选择器组件的实例代码
Mar 04 #Javascript
JS中==、===你分清楚了吗
Mar 04 #Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 #Javascript
通过实例了解Javascript柯里化流程
Mar 03 #Javascript
You might like
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
简单实现python聊天程序
2018/04/01 Python
python挖矿算力测试程序详解
2019/07/03 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
《日月潭》教学反思
2014/02/28 职场文书
工程质量承诺书范文
2014/03/27 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
三问三解心得体会
2014/09/05 职场文书
卖房协议书样本
2014/10/30 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
2015年三万活动总结
2015/03/25 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫