执行以下代码,alert的输出结果为hello189

执行以下代码,alert的输出结果为 hello189

var msg = 'hello'; for (var i = 0; i<10; i++){     var msg = 'hello' + i * 2 + i; } alert(msg)

在for循环内使用var声明的变量msg并不是局部变量,而是全局变量。
在for循环中,每循环一次,变量msg的值就被覆盖一次,最终msg的值为表达式‘hello’ + 9 * 2 + 9的返回结果,
根据运算符的优先级,先计算9 * 2,返回结果为18,接着运算hello + 18,返回结果为字符串类型的hello18,
最后运算hello18 + 9,返回结果为字符串类型的hello189,故输出结果为hello189

注意这里只是for循环不是函数,因此for内部定义的msg与for外部定义的msg为在同一块作用域,为同一个变量。

这道题的难点不在域.而是String拼接和符号的优先级.
"hello"+9*2+9    
// "hello"+18+9
// "hello18"+9
// "hello189"       // 结果为String类型字符串


__EOF__

本文作者龙陌
本文链接https://www.cnblogs.com/longmo666/p/17813115.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   龙陌  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示