js变量赋值问题

小可酱 2017-12-19 02:24:51
有个问题,下图,变量result在第一次能打印出正常数据,第二次就是undefined。逻辑并没有进入重新定义result的判断里面去,就算是进入了result也应该被重新赋值了。求解释这个js的赋值变量的原理。谢谢

...全文
348 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2017-12-19
  • 打赏
  • 举报
回复
第一次打印的result是全局变量。第二次在函数中打印的result是函数内的局部变量, 在函数内用var声明的result是局部变量,与全局变量result同名但却是不同的变量。 并且用var声明的变量有一种“声明提升”的特性,不论var写在函数内的任何地方,都会使变量在函数内的代码执行前先声明,声明后变量的默认值就是undefined。 当函数代码执行时,如果逻辑并没有进入对result局部变量赋值的判断里面去,打印的就是声明后变量的默认值undefined。 你如果是要在函数内对全局变量赋值就不要用var

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧