if和for里面放函数

if和for里面放函数

视频中的没听明白,就是把函数以声明的方式直接放在if或for的{}里面去会怎样,视频说的解析的时候会放到前面去,这句话的意思是在执行代码的时候执行不了,是因为函数被提到前面去了?就是这样做是访问不到函数的还是啥意思呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
怎么都被占用了呢 2017-12-08 16:42:37

按照if和for没有自己的作用域来讲,是这么回事。但是不同浏览器的解析不同,建议不要这么做。在IE10以下版本中,就可以访问到代码块中声明的函数,但是在谷歌和其他的一些主流浏览器中已经不支持了。所以不要纠结这个,只要记住:不要在if、for这样的地方声明函数就好了。

  • 提问者 潜狸 #1
    好的!!!!
    2017-12-08 16:44:27
怎么都被占用了呢 2017-12-08 15:58:17

首先,你要了解预解析,就是在按照从上到下的顺序一句一句研读代码前,会将function声明的函数优先加载进内存。

然后只有作用域,才会进行预解析。if和for语句只是一个代码块,不是作用域,所以那两个函数会在全局作用域中进行预解析。已经在预解析中定义了,所以无论条件是真是假,都无所谓了。

  • 提问者 潜狸 #1
    你的意思是无论真假都是可以访问到的是吧
    2017-12-08 15:59:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师