美文网首页
浏览器控制台输出 undefined 与 eval()

浏览器控制台输出 undefined 与 eval()

作者: overTheFloor | 来源:发表于2017-01-22 12:35 被阅读0次

一直搞不懂chrome console市场出现的undefined怎么来的,今天查了下也没有很详细的解释,搞了半个上午总算有点明白了,而且还意外入门了chrome的一些高级用法(不务正业)。

症状

在chrome>console>输入框输入一下代码;

情况1 情况2 情况3
var oo=10 eval("var cc=10;") 1
Paste_Image.png
结果1 结果2 结果3
undefined undefined") 1

原理

eval()只有一个参数。如果传入的参数不是字符串,它直接返回这个函数。如果参数是字符串,它会把字符串当成JavaScript代码进行编译,如果编译失败者抛出一个语法错误异常。如果编译成功,则开始执行这一段代码,并返回字符串中的最后一个表达式会或语句的值,如果最后一个表达式或语句没有值,则最终返回undefined。如果字符串抛出一个异常,这个异常将把该调用传递给eval()。

个人理解

在输入框直接输入代码与在eval("%s")【伪】%s输入代码的效果保持一致,应该(应该)可以说明console使用eval()解析输入的代码。所以当一段代码没有返回值的时候,eval返回undefined;

收货

以后看见这个

Paste_Image.png

也知道他是啥了

相关文章

网友评论

      本文标题:浏览器控制台输出 undefined 与 eval()

      本文链接:https://www.haomeiwen.com/subject/zyfobttx.html