javascript 的执行优先级是多少?

What is the priority of execution of javascript?

我有一个由博主链接的外部 JavaScript 文件。我想更改其中的值。 (css 值分配给 JavaScript)

是否可以 运行 头部或正文中的相同代码用 JavaScript 分配不同的值? 例如,CSS 给予外部 CSS 样式表最低优先级并分配文件内部给定的属性。

JavaScript有这样的优先系统吗?

Javascript 代码在包含点执行。

Html 解析器

  • 解析标签
  • 找到 javascript
  • (可选)下载javascript
  • 停止解析html
    • 解析js
    • 执行 js
  • 继续解析 html
  • 找到 javascript
  • (可选)下载javascript
  • 停止解析html
    • 解析js
    • 执行 js
  • 继续解析 html
  • 等等

注意诸如将自身挂接到 domready 事件的代码之类的东西,仅在文档加载完成或其他事件时触发,然后归结为它们的注册顺序。

还有像 defer 和 async 这样的东西,这将使它 load/execute 与解析并行(细节和支持因浏览器而异)。 但是在 google 博客中没有大量修改模板的大多数情况下,我列出的序列将会发生

JS 一加载就执行,所以把你的脚本放在他们的之后(要么在后面链接到外部文件,要么把它内联),它将能够改变第一个脚本中的东西,但是它到那时可能已经执行了。

如果他们的脚本在 运行 之前等待某些东西,例如 DOM 就绪事件

,您也许可以覆盖它的一部分
if you have tow function with same name, one in head and another one in an external .js file and both of them write a value in <a>, the result will be from the internal one, let's look at an example

<html>
<head>
<script src="myscripts.js"></script>
<script type="text/javascript">
function test(){   
document.getElementById("tester").innerHTML="Internal";       
}
</script>
</head>
<body onload="test()">
    <a id="tester"></a>
</div>
</body>
</html>
-------------------------------------
in myscripts.js
function test(){
document.getElementById("tester").innerHTML="external";    
}
-------------------------------------
when the page run it shows:
Internal

不是优先级,而是执行顺序。 Javascript 不涉及任何类型的优先级排序,或者在 CSS 中没有任何特殊性甚至需要它。

Javascript代码是executed in the order it is included in the HTML document不管是内联还是外部js,虽然events让事情变得有点复杂,我们可以安排代码运行 之后的某些事件,例如 window 的 'load' 事件。因此很容易确保您的代码在他们之后是 运行,但是如果他们说从 onload 事件处理程序更改样式,那么您必须将代码添加到相同的 event 本身. (至少在 DOM3 规范中确保了事件处理程序的顺序)

但是,你有没有在CSS中尝试过!important,它可以覆盖内联样式,并且在像这样的某些场景中派上用场。但是,如果您能够使用 JavaScript 很好地删除样式。