“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"));//5console.log(x);//2
function f(){return !this;} //返回false,因为"this"指向全局对象."!this"就是falsefunction 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++等,都是一种 ...
随机推荐
- IsPostBack是什么意思,如何运用?
IsPostBack是Page类的一个属性,返回值为一个布尔值.一般放在Page_Load事件中.当页面是第一次打开时其值为False,若当前页面为一个提交后的页面其值为True. if (!IsPo ...
- ThinkPHP 的CURD
1.ThinkPHP 3 读取数据 (重点) 对数据的读取 Read $m=new Model('User'); $m=M('User'); select $arr = $m->select() ...
- C趣味100道之58.拉丁方的一些想法。
题目如上. 思路(未写) 完整代码如下: #include<iostream> #include<queue> #include<math.h> using nam ...
- split 函数自己实现
要求自己实现split函数 def mySplit(str,delimiter): result = [] start = 0 pos = str.find(delimiter, start) whi ...
- Linux学习之wget命令
Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持HTTP,HTTPS和FTP协 ...
- [springMVC]javax.servlet.jsp.JspTagException: Neither BindingResult nor plain target object for bean
问题描述: 页面使用标签<form:form>进行提交时,出现[springMVC]javax.servlet.jsp.JspTagException: Neither BindingRe ...
- VueJS搭建简单后台管理系统框架(一)环境搭建
做这份笔记的时候,Vue.js还是1.0,10月份Vue已经升级到2.0,这边也进行相应的更新,用Vue2.0进行一个简单的环境搭建 饿了么也刚好开源了其基于Vue.js的UI框架element-ui ...
- python相似模块用例(一)
一:threading VS Thread 众所周知,python是支持多线程的,而且是native的线程,其中threading是对Thread模块做了包装,可以更加方面的被使用,threading ...
- C# Socket SSL通讯笔记
一.x.509证书 1.制作证书 先进入到vs2005的命令行状态,即:开始-->程序-->Microsoft Visual Studio 2005-->Visual Studio ...
- FLAG_ACTIVITY_NEW_TASK和SingleInstance的设计思路(多task的应用)
这部分的想法都是基于以下两点: 1.Activity可能被复用,可能是复用Activity的功能,还可能是复用Activity的状态: 2.Task的作用:target,同一个task中的Activi ...