网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月14日漏签0天
javascript吧 关注:269,281贴子:906,483
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 25回复贴,共2页
  • ,跳到 页  
<<返回javascript吧
>0< 加载中...

javascript执行顺序

  • 只看楼主
  • 收藏

  • 回复
  • caocao808
  • ifelse
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • caocao808
  • ifelse
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
先看下面两段js程序,先是定义式函数写法:
<script type="text/javascript">
function myfunc(){
alert("第一次调用");
};
myfunc(); //得出的是 第二次调用
function myfunc() {
alert("第二次调用");
};
myfunc(); //得出的是 第二次调用
</script>
接下来是变量式函数写法:
<script type="text/javascript">
var myfunc = function (){
alert("第一次调用");
};
myfunc(); //得出的是 第一次调用
myfunc = function () {
alert("第二次调用");
};
myfunc(); //得出的是 第二次调用
</script>
在定义式函数写法的代码中执行两个方法后的结果是一样的,就等于定义式函数中第一个函数没起到任何作用,得到的都是第二个函数的结果,从结果来看,JavaScript执行顺序不是按顺序一条一条来执行。
在变量式函数写法的代码中执行两个方法后的结果是不同的,从这来看,JavaScript执行顺序是按顺序一条一条来执行的,
从这两个不同函数的表示方法来看,在同一段程序的分析执行中,定义式函数有优先权,定义式函数执行完后,其他语句(包括变量式函数)才顺序执行,那么下面的例子也就不难得出结果了:
<script type="text/javascript">
function myfunc(){
alert("第一次调用");
};
myfunc(); //输出 第二次调用
var myfunc = function (){
alert("第三次调用");
}
myfunc();//输出 第三次调用 上次的结果已经被这次的变量式函数结果覆盖
function myfunc() {
       alert("第二次调用");
};
myfunc();//输出 第三次调用  function myfunc()已经不再执行
myfunc = function () {
alert("第四次调用");
}
myfunc();//输出 第四次调用
</script>
也许问题就这么解答了,但是出现下面的情况呢:
<script type="text/javascript">
function myfunc(){
alert("第一次调用");//输出 第一次调用
}
myfunc();
</script>
<script type="text/javascript">
function myfunc(){
alert("第二次调用");//输出 第二次调用
}
        myfunc();
</script>
结果就不像我们上次分析的那样了,这里的改变就是把两个相同的方法放在两个JavaScript片段里,这时两个方法都得出各自的结果,这里也就说明JavaScript是按一段一段来分析执行的,如下面代码:
<script type="text/javascript">
myfunc();//输出 第一次调用
var myfunc = function (){
alert("第二次调用");
}
myfunc();//输出 第二次调用
function myfunc() {
alert("第一次调用");
};
</script>
<script type="text/javascript">
myfunc();//输出 第三次调用
var myfunc = function (){
alert("第四次调用");
}
myfunc();//输出 第四次调用
function myfunc() {
alert("第三次调用");
};
myfunc();//输出 第四次调用
</script>
欢迎访问:hrrp://www.joymood.cn


官渡区天互软件开发工作室
Vue2+Vue3,低代码/无代码,分布式,单体式,工作流引擎,流程设计器,表单设计器,规则引擎,代码生成器,SaaS多租户,接口集成引擎,页面视图引擎,数据报表引擎,BI大屏引擎
2025-05-14 11:45广告
立即查看
2025-05-14 11:45:22
广告
  • gainover
  • Error
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
很不错的文章~~


  • 123.113.43.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最后的 为什么 不是 <script type="text/javascript">
myfunc();//输出 第二次调用
var myfunc = function (){
alert("第二次调用");
}
myfunc();//输出 第一次调用
function myfunc() {
alert("第一次调用");
};
</script>
呢?
不是先调用变量函数再调用定义式函数么?


  • gainover
  • Error
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼主写了。。 是先 执行全部的 定义式函数。
然后再从片段的开头向末尾依次执行
,所以 先弹出的是 第一次。。。 然后执行 变量式 ,再弹出第2次调用
不过这个帖子的意义在于,了解了JS的执行顺序。。 实际编写代码过程中。。如果代码写得这么混乱。。感觉是不可取的。。。


  • caocao808
  • ifelse
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
呵呵 gainover说得对,这仅仅是个测试,很粗糙,当时自己也只是为了测试下,最近感觉对JavaScript很多方面还不足,需学习...


  • pengfeiiW
  • true
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大致看明白,楼主1234好乱


  • 春泛若耶綦毋潜
  • Error
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
可否总结为两点:
1、javascript是按照一段一段来执行的。
2、同一段中,定义式函数的优先权大于变量式函数。


合肥水花网络科技有限公司
在线编辑Excel表格、WORD文档等,涵盖了多款常用模板,让你随时随地轻轻松松制作表格。简单便捷的操作。
2025-05-14 11:45广告
立即查看
2025-05-14 11:39:22
广告
  • jngenius
  • var
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
代码还是尽量写的清晰,不要写出的程序,连自己都不清楚执行顺序是什么


  • abiao5555
  • for
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1、<script>中的代码是阻塞式同步下载执行的,当浏览器遇到一个<script>标签会先下载这个标签的代码然后执行。在完成这件事之前不会加载其他任何标签和资源。
2、变量和函数的声明发生在代码解析期,但是,变量赋值发生在运行期,因此反复声明同名函数和变量,最后一次声明的函数被保存下来,直到运行到变量赋值的代码才发生变化。



  • liuriweiyang_1
  • for
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
var i=1;
setTimeout(function(){i++;},0);
aleret(i);
这个执行顺序呢


  • abiao5555
  • for
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
settimeout是开cup中断来处理的
一般是间隔 16ms
最新的浏览器可能会压缩到4ms
也就是说,即使设置为0ms后执行,也要至少等待4ms


  • liuriweiyang_1
  • for
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不错嗯不错,
/*1.js内容为 i++ */
var i=0;
jsLoader("1.js");
alert(i);
这个呢,i是多少啊


  • abiao5555
  • for
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
异步加载1.js文件,看加载速度
一般来讲,alert(i);会先执行弹出0,但是,从逻辑上来讲,还是有可能比js文件加载慢,从而弹出1


2025-05-14 11:33:22
广告
  • liuriweiyang_1
  • for
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大牛


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 25回复贴,共2页
  • ,跳到 页  
<<返回javascript吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示