“use strict”对js的影响
一:全局变量显示声明
"use strict"
v = ; //报错,v未声明
for(i = ;i<;i++){ //报错、i未声明
}
"use strict";
var v = ;
with(o){ //语法错误
v = ;
}
"use strict";
var x = ;
console.log(eval("var x = 5;x"));//5
console.log(x);//2
function f(){
return !this;
} //返回false,因为"this"指向全局对象."!this"就是false
function f(){
"use strict";
return !this;
}//返回true。因为在严格模式下"this"值为undefined,所以"!this"为true
function f(){
"use strict";
this.a = ;
}
f(); //报错,this未定义
function f(){
"use strict";
f.caller;//报错
f.arguments;//报错
}
f();
"use strict";
var x;
delete x;//语法错误
var = Object.create(null,{'x':{
value:,
configurable:true
}});
delete o.x;//删除成功
"use strict";
var o = {};
Object.defineProperty(o,"v",{value:,wtrtable:false});
o.v = ;报错
"use strict";
var o = {
get v(){return ;}
};
o.v = ;// 报错
"use strict";
var o = {};
Object.preventExtensions(o);
o.v = ; // 报错
"use strict";
delete Object.prototype; // 报错
"use strict";
var o = {
p:;
p:;
}; //语法错误
function f(a,b,b){
return; //语法错误
}
"use strict";
var n = ; // 语法错误
"use strict";
arguments++; //语法错误
var obj = {set p(arguments){}};语法错误
try{}catch(argument){};//语法错误
function arguments(){}//语法错误
var f = new Function("arguments", "'use strict'; return 17;"); // 语法错误
function f(a){
a = ;
return [a,arguments[]];
}
f();//正常模式下[2,2];
function f(a){
"use strict";
a = ;
return [a,arguments[]];
}
f();// 严格模式为[2,1]
"use strict";
var f = function() { return arguments.callee; };
f(); // 报错
"use strict";
if (true) {
function f() { } // 语法错误
}
for (var i = ; i < ; i++) {
function f2() { } // 语法错误
}
function package(protected) { // 语法错误
"use strict";
var implements; // 语法错误
}
“use strict”对js的影响的更多相关文章
- es6 中,大多数开发者和 babel 之类的工具默认添加 use strict 到 JS 文件的头部,确保采用严格模式
严格模式(use strict) 有助于防止问题用法,并且它也有助于安全使用 JavaScript. 在 ES5 中, 严格模式是可选项,但是在 ES6 中,许多特性要求必须使用严格模式. 因此大多数 ...
- 原生JS插件(超详细)
作为一个前端er,如果不会写一个小插件,都不好意思说自己是混前端界的.写还不能依赖jquery之类的工具库,否则装得不够高端.那么,如何才能装起来让自己看起来逼格更高呢?当然是利用js纯原生的写法啦. ...
- 如何定义一个高逼格的原生JS插件
插件的需求 我们写代码,并不是所有的业务或者逻辑代码都要抽出来复用.首先,我们得看一下是否需要将一部分经常重复的代码抽象出来,写到一个单独的文件中为以后再次使用.再看一下我们的业务逻辑是否可以为团队服 ...
- 前端面试绝对会考的JS问题!【已经开源】
写在前面 [前端指南]前端面试库已经开源,正在完善之中 [x] css问题 [x] html问题 [x] javascript问题 github地址 https://github.com/nanhup ...
- js原生高逼格插件
如何定义一个高逼格的原生JS插件 作为一个前端er,如果不会写一个小插件,都不好意思说自己是混前端界的.写还不能依赖jquery之类的工具库,否则装得不够高端.那么,如何才能装起来让自己看起来逼格更高 ...
- 高性能javascript学习笔记系列(1) -js的加载和执行
这篇笔记的内容主要涉及js的脚本位置,如何加载js脚本和脚本文件执行的问题,按照自己的理解结合高性能JavaScript整理出来的 javascript是解释性代码,解释性代码需要经历转化成计算机指令 ...
- node.js基础 1之基本概念常识
node.js 好牛逼的样子哦 很火,很腻害~~~~ 有关node.js的版本常识: 一般用最新的稳定版本,非稳定版本用于测试,其中包括api的不稳定等. 起一个web服务器: ndoejs可以自定义 ...
- 关于 Node.js 的认证方面的教程(很可能)是有误的
原文地址:Your Node.js authentication tutorial is (probably) wrong 我搜索了大量关于 Node.js/Express.js 认证的教程.所有这些 ...
- html基础js
HTML中的三把利器的JS 又称为JavaScript,看着好像和Java有点联系,实际上他和java半毛钱关系都没有,JavaScript和我们学习的Python.Go.Java.C++等,都是一种 ...
随机推荐
- php 实现二进制加法运算
php实现二进制加法: 思路:没有工作中应用过此场景,但十进制的加法还是经常做的,能不能用十进制加法变相实现呢? 答案是可以的,并且php也提供进制间转换的函数,我的实现使用了 bindec():二进 ...
- SQL初级阶段笔记
DataBase Management Stystem(数据库管理系统)简称:DBSM:虽然DBSM并不等于数据库,但行业内通常将DBSM称为数据库,所以一般来说数据库就指的是DBSM. 简单来讲DB ...
- JDBC连接数据库及增删改查操作
什么是JDBC?Java语言访问数据库的一种规范,是一套APIJDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类 ...
- U3D学习使用笔记(二)
1.在移动端www.texture使用时不能实时加载纹理,www.LoadImageIntoTexture使用没问题 2.public FaceFeature FaceFeatureData ...
- poj 1769 Minimizing maximizer 线段树维护dp
题目链接 给出m个区间, 按区间给出的顺序, 求出覆盖$ [1, n] $ 至少需要多少个区间. 如果先给出[10, 20], 在给出[1, 10], 那么相当于[10, 20]这一段没有被覆盖. 令 ...
- windows命令行模式下无法打开python程序解决方法
今天刚开始学Python,首先编写一个简单地hello world程序,想在命令行模式运行,结果出现下面: 经过一番思考,发现用cd命令可以解决这件事,看下图: 这样就解决了.
- spring常量值注入
<context:property-placeholder location="classpath:resources/*.properties" /> @Value( ...
- 对web应用中单一入口模式的理解及php实现
在我们web应用的开发中,经常会听见或看见单一入口模式,在我开始学习tp框架的时候也不理解为什么要运用一个单一入口模式,只是会使用,最近自己在搞一个小东西的时候才明白为什么在web开发中要运用单一入口 ...
- Oracle EBS-SQL (SYS-8):职责定义明细.sql
SELECT DISTINCT fa.application_short_name 模块, b.responsibility_name 职责名称, fa.applica ...
- c# 获取移动硬盘信息、监听移动设备的弹出与插入事件
原文 http://www.cnblogs.com/coolkiss/p/3328825.html 备忘一下改功能,主要通过WMI来实现,对于监听外接设备的弹出和插入事件一开始使用IntPtr Wnd ...