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

一直搞不懂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

也知道他是啥了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,268评论 0 4
  • 字符的 Unicode 表示法 codePointAt() String.fromCodePoint() 字符串的...
    卞卞村长L阅读 762评论 0 0
  • 我成了历史中的一段文字 在某一个早上醒来 发现历史的记录全是错误 只有身边的逗号是真实的 这个逗号就是你 我带着你...
    楊孜阅读 717评论 4 2
  • 最小二乘法是估计带有噪声模型中未知参量的一种常用的方法,下面我将详细说明一下最小二乘法问题及其解法。 1.最小二乘...
    变胖是梦想2014阅读 3,625评论 1 1
  • 昨夜,半睡的身体,被整夜未睡的心惊魂了数次。惊醒的瞬间,说不出的痛,心在颤抖,仿佛回到20年前…… 在感性的世界里...
    Soulhome阅读 225评论 2 1