js中这个不会被预解析了吗?

weixin_45232265 2019-06-12 10:19:29
新手,刚开始学有点懵逼,求大佬指点。 var num=15; function fn(){ str='abc'; consple.log(num); consple.log(str); } fn(); consple.log(str); 为什么运行结果是 15 abc abc 15不会因为预解析放到function下面了吗?
...全文
52 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liwx66 2019-06-13
  • 打赏
  • 举报
回复
<script>
var num=15;
function fn(){
  str='abc';//不加var是动态给window对象添加成员变量
  console.log(num);//你打错函数名了
  console.log(str);
}
fn();
console.log(str);
console.log(window.str);//和上一句相同
</script>
漠子凉 2019-06-13
  • 打赏
  • 举报
回复
num这样定义的话相对于fn是上一级的作用域, 一般的在下一级的作用域都可以使用上一级的作用域的变量,包括上上级和上上上级等等,只要比它高级都可以使用 以{}表示一个层级
weixin_41890440 2019-06-12
  • 打赏
  • 举报
回复
前面只是定义函数。后面才是执行函数啊亲

87,994

社区成员

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

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