解析js代码的时候,页面的处理会暂时停止 script元素在页面中是根据先后顺序进行解析的(不包含defer、async属性的时候)。defer、async属性只适用于外部脚本文件,其中defer为延迟脚本,即脚本的执行不会影响页面的构造,即脚本会被延迟到整个页面都解析完毕后再运行,即告诉浏览器立即下载,但是延迟执行,保证脚本按照指定他们的先后顺序执行(但也不一定);async 为异步脚本,告诉浏览器立即下载文件,但是不保证脚本按照指定他们的先后顺序执行,指定async的目的是不让页面等待脚本的下载和执行,从而异步加载页面的其他内容,因此建议异步脚本不要在加载期间修改dom,不是所有浏览器都支持async;异步脚本一定会在页面的load事件前执行,但可能会在DOMContentLoaded事件触发之前或之后执行
请不要在代码的任何部分出现</script>
字符串,因为按照解析嵌入代码的规则,当浏览器遇到字符串</script>
时,就会认为标签已经结束。通过把字符串分割成两部分可以解决这个问题,<//script>
即可
此时,src属性是必须的,而带有src的script标签不应该在其标签内包含额外的js代码,包含了嵌入代码会被忽略。 可以加载不同域的js文件,所以需要保证加载文件的可靠性
按照惯例已改放到页面的head元素中,但是会导致只有所有的js文件被下载、解析和执行后才开始呈现页面,为了避免这个问题,现代web程序一般都将js文件放在body元素中页面的内容后面。
只有在下列情况下才会显示出来
浏览器不支持脚本浏览器支持脚本,但脚本被禁用新闻热点
疑难解答