javascript - js中关于undefined的一个问题
PHP中文网
PHP中文网 2017-04-11 09:43:42
[JavaScript讨论组]

http://img.mukewang.com/583b9...

各位大神,上面截图中的undefined是怎么回事?不是已经输出了需要的答案:"Ayne"吗?那么这个undefined是那个返回值?

其次,如果最后一句改为:console.log(yaoxi(text)),为什么会报错?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(5)
巴扎黑

关于 undefined

如上示例,console.log("hello") 输出 hello
console.log("hello") 当作一个表达式来看,它没有返回值(即返回值是 undefined),所以输出 undefined

再来一个有返回值的函数试验,可以看到,输出的不再是 undefined,而是 return 出来的内容。

注意那个向左带点的小箭头,它表示上一个输入的表达式的计算结果

为什么 console.log(yaoxi(text)) 会报错

你在调用的那个上下文环境中就没有定义 text 这个变量,所以会报错。

text 是定义在 yaoxi 所引用的那个匿名函数中的,在这个函数之外并没有定义 text,所以在这个函数之外使用 text 就会报未定义,或者 ReferenceError 这类错。

PHP中文网

没报错,最后一console 里会显示最后一句的返回值,console. Log只打印,没返回值,所以是undedined

怪我咯

1.你试试将console.log(yaoxi(s))改为yaoxi(s)而不用console.log。
控制台会自动输出返回值的。所以那个undefined是console.log()的返回值。
2.console.log(yaoxi(text))这么写的话。text为实参,会去查找text这个变量。因为找不到所以会报错。

ringa_lee

undefined 是 console.log 函数的返回值,这里的text在这个函数表达式中声明的,属于函数内部的局部变量,外部当然访问不到了

ringa_lee

undefined就是console.log这个函数的返回值,并不是说Ayne错了 你具体可以百度下控制台console.log()的原理,其次,你最后问的这个问题,改为console.log(yaoxi(text))会报错是因为你根本就没有定义text这个变量所以就无法作为传参传入函数啊,不懂你是哪里理解出了问题 。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号