博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js eval setTimeout 第一个参数是字符串的情况,及在严格模式下的表现
阅读量:5364 次
发布时间:2019-06-15

本文共 820 字,大约阅读时间需要 2 分钟。

在非严格模式下 eval 中的代码,就像是插入在代码中的一样。

function foot(){	var b =11;	eval("b=function(){};console.log(b)");	console.log(b);}//非严格模式下等同于(有一点不同的是eval 内部的定义的变量是无法被提升的)function foot(){	var b = 11;	b = function(){};	console.log(b);	console.log(b);}//当eval内是一个未知的变量字串时,作用域内的变量可能被破坏。严格模式下等同于function foot(){	var b = 11;	//自执行函数	(function(){		b = function(){};	console.log(b);    })()	console.log(b);}

 setTimeout 第一个参数是字符串时,内部会使用 eval执行。 这里好像无法使用严格模式,严格模式下ggg应该是12 但是实际上却是 xxxx,严格模式好像未生效

var ggg = 12;setTimeout("var ggg= 'xxxx';console.log(ggg)",0);setTimeout(function(){ 	console.log(ggg); //xxxx },0)  

 new Function("var b =11;")  Function 内的字符串自成 function 作用域。

严格模式下 :arguments 和形参的改变不会再相互影响。

严格模式 详见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Strict_mode

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

转载于:https://www.cnblogs.com/chillaxyw/p/9753227.html

你可能感兴趣的文章
flask框架
查看>>
linux流量查看工具 iftop
查看>>
JavaScript IIFE
查看>>
类似天猫那样的侧边导航栏的快速实现
查看>>
软工视频
查看>>
2015-11-5
查看>>
Windows环境下多线程编程原理与应用读书笔记(1)————基本概念
查看>>
写给入门者的三十条HTML代码编写指南
查看>>
MultipartFile的使用小结
查看>>
使用简单的nltk的API 得到一系列字母可以组成的所有单词
查看>>
第一章、欢迎进入C#编程世界
查看>>
函数声明 和 var声明的优先级
查看>>
repost: Deep Reinforcement Learning
查看>>
重拾我的算法思维之--归并排序
查看>>
01XML文档结构
查看>>
PHP 高级编程(4/5) - SPL异常类之 LogicException 逻辑异常
查看>>
二十五 存储技术与应用 iSCSI技术应用 、 udev配置 NFS网络文件系统 、 Multipath多路径 、 NFS网络文件系统 、 udev配置...
查看>>
refresh的停车场 分类: 栈和队列 20...
查看>>
发送邮件
查看>>
浮动的一些知识点
查看>>