javascript - js匿名函数执行、<script>代码段放html哪里的问题
巴扎黑
巴扎黑 2017-04-10 15:10:46
[JavaScript讨论组]

页面中
1pic //a() 加的有()


成功执行并弹出9
换一种写法:


当我点击a标签成功弹出0.可是仔细看代码只是把一个匿名函数赋给了onclick,如果执行不应该在后面加上()吗

问题2:
《javascript DOM编程艺术》有这一段话,如果js文件在标签出调用,它将在html文档加载之前运行。如果

巴扎黑
巴扎黑

全部回复(2)
黄舟

html页面是顺序加载的(自上而下),但是script标签是异步加载的,即无阻塞并发处理,所以不知道在script中的哪一个文件被先加载,哪一个被后加载~

改成这样可能明显点:

  <a href="javascript:;" id="a">click</a>
  <script>
  var touch = document.getElementById('a');
  touch.onclick = function(){
    alert('aaa');
  }
  </script>

因为你的第一个方式是:

<a href="javascript:;" id="a" onclick = "a()">click</a>

可以理解为

touch.onclick = function a(){}

即将onclick事件指向了一个有名函数

而我上面写的是将touch.onclick指向了一个匿名函数,但本质上都是调用函数,所以会触发。

PHP中文网

1.元素上的onclick是一个表达式,在你点击的时候会执行这个表达式而已,你在循环中的是赋值,声明onclick的回调函数,这是两个概念。
2.加载可能是不保证顺序的,因为浏览器会并行加载脚本,但是执行一定是顺序执行,并且加载完成之前会阻塞页面渲染HTML代码,至于举例你直接用chrome查看network,查看下timeline就看到了。(defer不讨论)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号