“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++等,都是一种 ...
随机推荐
- Chrome 常用快捷键
20160518 生活常识 Chrome常用操作快捷键 掌握Chrome的常用快捷键,不仅可以节约时间,还能够提高工作效率,最主要还可以装逼.以下是一些常用快捷键: 窗口操作快捷键: ...
- Django Url编码问题
Django Url编码问题 最近在学习Django,写一个blog程序练练手手.对于一个才开始接触web开发的来说,难免会遇到一些问题. 有一个这样的模板: {%for k,v in cat ...
- Linux学习之/etc/init.d/functions详解
转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=28773997&id=3996557 /etc/init.d/f ...
- Android 通知栏系列....
转:http://blog.csdn.net/vipzjyno1/article/details/25248021 在android的应用层中,涉及到很多应用框架,例如:Service框架,Activ ...
- C++设计模式之建造模式
#include <iostream>using namespace std; class ApplePhone { public: virtual void buildCamera()= ...
- 内核级HOOK的几种实现与应用
实现内核级 HOOK 对于拦截.分析.跟踪系统内核起着致关重要的作用.实现的方法不同意味着应用侧重点的不同.如想要拦截 NATIVE API 那么可能常用的就是 HOOK SERVICE TABLE ...
- Linux下最快速共享目录的方法
Linux下最快速共享目录的方法 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 搭建FTP,或者是搭建网络文件系统,这 ...
- DKNY_百度百科
DKNY_百度百科 DKNY
- HTML系列(三):文字设置
一.标题 标题的h1到h6标签,这里不再赘述.值得一提的是,H5中新定义了一个元素<hgroup>,用来将标题和副标题群组.一般在header里将一组标题组合在一起,变成一个区块: < ...
- XX秘籍
第一课 一个男人在他妻子洗完澡后准备进浴室洗澡.这时,门铃响了. 妻子迅速用浴巾裹住自己冲到门口. 当她打开门时,邻居鲍勃站在那儿. 在她开口前,鲍勃说,“你如果把浴巾拿掉,我给你800美元.” 想了 ...