关于JavaScript代码放在body中还是head的问题
从事前端也有段时间了,期间也看过不少别人写的代码,但是发现一个问题(不能说是一个问题吧)就是有些人把js代码放在head中,也有些人把js代码放在body中,回头想一想,哎,还真想不出为啥。在网上查了查其实这是个很初级的问题(还亏我工作了一段时间,惭愧!)好了,废话不多说,看问题。
其实浏览器在解析HTML是从上往下的。所以把js脚本放在head中的话,浏览器会先执行js脚本,然后在往下执行。就是你如果要为一个元素绑定事件的话,因为执行顺序的原因,还没有等body解析出来,就给你返回一个空值,就是你要绑定的东西没有。
如何要把js脚本放在bead中的话,一般会绑定监听事件,等页面完全解析出来再执行下面的代码。比如window.onload或者document.ready,加上这其中一段代码就行,表示DOM树全部加载完了在执行你要执行的代码,这样应该不会出现意外了。
如果你要放在body中的话,其实也没什么太大的问题,我认为会反而较好些,因为是js脚本放在了body中浏览器解析起来也就顺其自然的解析完全部代码。这也是我之前一直这样写的。
其实写在什么地方,看业务需求吧或者各个公司的代码规范。这篇文章初学者可以看看,大佬路过瞄一眼就行了。