解析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元素中頁面的內容后面。
只有在下列情況下才會顯示出來
瀏覽器不支持腳本瀏覽器支持腳本,但腳本被禁用新聞熱點
疑難解答