Javascript 严格模式的一些理解
平常我们在ECMAscript5中可以声明以下的变量
num = 5;
console.log(num);//输出的是变量5
而为了Javascript更合理、更安全、更严谨的方向发展,添加了一种新的模式进来 - “严格模式”
严格模式的主要目的
1、消除javascript的一些不严谨、不合理之处,减少一些怪异的错误;
2、消除代码的一些不安全,保证代码的安全
3、提高编译效率,增加运行速度
4、为未来新版本的javascript做好铺垫
支持严格模式下的浏览器:Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+
进入严格模式使用 “use strict”语句
老版本的浏览器会默认当成一串字符串执行
如果要以严格模式进行代码编译,需要把“use strict”写在脚本内的第一行
例1:
<script>
“use srtrict”; //这是一个严格模式的执行代码,写在脚本内的第一行
var num = 1;
console.log(num);
</script>
<script>
var num = 1; //这是正常模式
console.log(num);
</script>
严格模式也可以针对单个函数进行执行
例2:<script>
function strict (){
“use strict”;
return ‘这是严格模式’;
}
function notStrict (){
return ‘这是正常模式’;
}
</script>
可以将严格模式放在立即执行函数中
例3: (function(){
“use strict”;
})();
严格模式对Javascript的语法和行为,都做了一些改变
在正常模式中,如果一个变量没有生命便赋值,默认是全局变量 例如:a = 1; 严格模式中严禁这种写法,全局变量必须显示生命,添加var
例4: <script>
“use strict”;
i = 1;
for(i = 0; i < 2; i++) { // 报错,i声明错误
}
</script>
禁止this关键字指向全局对象
在普通函数下,this的指向是全局对象window,在严格模式下,this的值为undefined,所以在构造函数下
function f(){
"use strict";
this.a = 1;
};
f();// 报错,this未定义
严格模式下无法删除变量,只有将configurable设置为true
“use strict”;
var x;
delete x //报错,语法错误
var o = Object.create(null, {'x': {
value: 1,
configurable: true
}});
delete o.x; // 删除成功
Javascript 严格模式的一些理解的更多相关文章
- (转)深入理解JavaScript 模块模式
深入理解JavaScript 模块模式 (原文)http://www.cnblogs.com/starweb/archive/2013/02/17/2914023.html 英文:http://www ...
- 深入理解JavaScript 模块模式
http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html 模块模式是JavaScript一种常用的编码模式.这是一般的 ...
- javascript运行模式:并发模型 与Event Loop
看了阮一峰老师的JavaScript 运行机制详解:再谈Event Loop和[朴灵评注]的文章,查阅网上相关资料,把自己对javascript运行模式和EVENT loop的理解整理下,不一定对,日 ...
- Javascript原型模式总结梳理
在大多数面向对象语言中,对象总是由类中实例化而来,类和对象的关系就像模具跟模件一样.Javascript中没有类的概念,就算ES6中引入的class也不过是一种语法糖,本质上还是利用原型实现.在原型编 ...
- JavaScript严格模式详解
转载自阮一峰的博客 Javascript 严格模式详解 作者: 阮一峰 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict m ...
- JQuery日记6.5 Javascript异步模式(一)
理解力JQuery前实现异步队列,有必要理解javascript异步模式. Javascript异步其实并不严重格异步感,js使某些片段异步方式在将来运行,流不必等待继续向下进行. 在多线程的语言中最 ...
- Javascript 严格模式(strict mode)详解
Javascript 严格模式详解 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Ja ...
- Javascript 严格模式 strict mode(转)
一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. ...
- 面向对象的JavaScript --- 原型模式和基于原型继承的JavaScript对象系统
面向对象的JavaScript --- 原型模式和基于原型继承的JavaScript对象系统 原型模式和基于原型继承的JavaScript对象系统 在 Brendan Eich 为 JavaScrip ...
随机推荐
- Parquet 列式存储格式
Parquet 列式存储格式 参考文章: https://blog.csdn.net/kangkangwanwan/article/details/78656940 http://parquet.ap ...
- Java网关服务-AIO(二)
Java网关服务-AIO(二) 概述 AIO的特点就是用户程序注册一个事件后就可以做其他事情,当事件被内核执行并得到结果后,我们的CompletionHandler会在I/O回调线程中被自动调用,有点 ...
- windows7 安装配置NodeJS、NPM
转载自https://blog.csdn.net/dengxw00/article/details/82974808 windows7 安装配置NodeJS.NPM一.安装 NodeJS1.登陆官网( ...
- git 常用命令大全2
查看.添加.提交.删除.找回,重置修改文件 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id gi ...
- 【转】Extension Libraries and Loading Other Image Formats
FROM: http://lazyfoo.net/tutorials/SDL/06_extension_libraries_and_loading_other_image_formats/index. ...
- 一路踩坑,被迫聊聊 C# 代码调试技巧和远程调试
一:背景 1. 讲故事 每次项目预交付的时候,总会遇到各种奇葩的坑,我觉得有必要梳理一下以及如何快速解决的,让后来人避避坑,这篇就聊聊自己的所闻所遇: 我去,本地环境代码跑的哧溜,上了测试环境出问题 ...
- 【Jmeter】第一个接口测试案例
测试步骤如下: 1.测试计划 2.线程组 3.HTTP Cookie管理器 4.Http信息头管理 5.Http请求默认值 6.Sampler(HTTP请求) 7.断言 8.监听器(查看结果树.图形结 ...
- 转载-Java匿名内部类
作者: chenssy 出处: http://www.cnblogs.com/chenssy/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...
- 典型分布式系统分析:Dynamo
本文是典型分布式系统分析系列的第四篇,主要介绍 Dynamo,一个在 Amazon 公司内部使用的去中心化的.高可用的分布式 key-value 存储系统. 在典型分布式系统分析系列的第一篇 MapR ...
- windows本地破解用户口令
实验所属系列:操作系统安全 实验对象: 本科/专科信息安全专业 相关课程及专业:信息网络安全概论.计算机网络 实验时数(学分):2学时 实验类别:实践实验类 实验目的 1.了解Windows2000/ ...