关于js代码执行顺序

上网查了一下关于这个方面的资料,大部分都是关于两个script标签中的js代码和变量以及函数提升方面的知识。

1、两个script标签

<script>
    alert("我是代码块一");
    alert(test); //undefined
    var test = "str1"l
</script>

<script>
    alert("我是代码块二");
    alert(test); //str1
</script>

特点:两代码块执行独立,变量共享;

关于变量和函数提升方面,已了解。

2.关于我自己的困惑,先贴上一段代码:

var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 6

  为什么会输出6,

时间: 2024-10-21 21:02:00

关于js代码执行顺序的相关文章

Javascript 中js语句执行顺序

如果我们把嵌入在HTML中的<script> js coding </script>看做Js代码块(实际上Js没有代码块的意义一说,如果真要看成代码块那也应该是按函数块来划分)的话,下面就是Js代码执行顺序: 这里转载 Js执行顺序总结归纳  请参考  http://www.3lian.com/edu/2014/04-07/139469.html  step 1.  读入第一个代码块<script> js coding </script>,按HTML中声明的

javascript--函数的声明及调用/JS中代码执行顺序

[函数的声明及调用] 1.函数声明格式: function 函数名(参数1,参数2,参数3--){ //函数体 return 结果: } 函数调用的格式: 函数名(参数1的值,参数2的值,--): 事件调用:事件名=函数名(): 2.函数声明的几点强调: ① 函数的声明,必须符合小驼峰法则(首字母小写,之后每个单词首字母大写): ② 参数的列表,可以有参数,可以无参数.分别称为有参函数,无参函数: ③ 声明函数时的参数列表,称为"形参列表"(变量的名): 调用函数时的参数列表,称为&q

浅析js的执行顺序

javascript是一种描述型的脚本语言,是一种解析语言,由浏览器动态解析,不同种类的浏览器不同版本的浏览器对于js的解析有着微小的差别,不同浏览器的js解析引擎效率也有高低,下面来给大家分析一下js的执行顺序,希望对大家能有所帮助,欢迎大家交流指正. 首先js的执行过程分为两大部分,第一部分,解析过程,也称预编译期.主要工作就是对于js的代码中声明的所有变量和函数进行预处理.需要注意的是,再此进行处理的仅是声明函数,而对于变量的处理仅是声明,并开辟出一块内存空间,不进行复制操作. 第二部分,

浏览器环境下JavaScript脚本加载与执行探析之代码执行顺序

本文主要基于向HTML页面引入JavaScript的几种方式,分析HTML中JavaScript脚本的执行顺序问题 1. 关于JavaScript脚本执行的阻塞性 JavaScript在浏览器中被解析和执行时具有阻塞的特性,也就是说,当JavaScript代码执行时,页面的解析.渲染以及其他资源的下载都要停下来等待脚本执行完毕①.这一点是没有争议的,并且在所有浏览器中的行为都是一致的,原因也不难理解:浏览器需要一个稳定的DOM结构,而JavaScript可能会修改DOM(改变DOM结构或修改某个

当C#中带有return的TryCatch代码遇到Finally时代码执行顺序

编写的代码最怕出现的情况是运行中有错误出现,但是无法定位错误代码位置.综合<C#4.0图解教程>,总结如下: TryCatchFinally用到的最多的是TryCatch,Catch可以把Try代码块的错误捕捉到,并对错误进行后续处理.这一点比较常见. 现在要讨论的是如果Try和Catch代码块有return时代码的执行顺序.众所周知,return的作用是退出当前函数,不执行return后面的代码.那么问题来了:如果return出现在Try或catch代码块中,并且return后面还有代码,则

final、static、代码块、静态代码块、内部类、代码执行顺序

final final域使得确保初始化安全性(initialization safety)成为可能,初始化安全性让不可变形对象不需要同步就能自由地被访问和共享 作用在类上               则为final类,final类不能被继承.一般用于工具类时,同时把工具类构造函数声明为私有,暴露静态共有方法 作用在成员变量上    则视为常量.此时赋值方式有三种:(1)声明时赋值(2)构造函数中赋值(3)代码块中赋值. 即不管哪种方式都要保证在使用该变量之前要确保已经有值.使用该特性,可以强制赋

java复习基础篇——代码执行顺序

代码块:在Java中,使用{}括起来的代码成为代码块 根据其位置和声明的不同,可以分为局部代码块:局部位置,用于限定变量的生命周期 构造代码块:在类中的成员位置,用{}括起来的代码.每次调用构造方法执行前,都会先执行构造代码块. 作用:可以把多个构造方法的共同代码放在一起. 静态代码块:在类中的成员位置,用{}括起来的代码,只不过它用static修饰 作用:一般是对类进行初始化 public class BlockTest { { System.out.println("444 BlockTes

关于js事件执行顺序

关于js事件执行顺序小技巧 js事件执行顺序是js中一个老生常谈的一个话题, 聊这个话题之前我们先谈谈怎么给页面元素绑定我们需要的事件 1.给页面元素绑定事件 a)直接在元素上面加上需要绑定的事件,如 <button type="button" onclick="console.log('111')"></button> 结果如下: 此方法不建议使用,有两方面的原因, 1)此方法绑定的方法必须为一个全局的方法,而通常我们需要绑定的方法都是针对

java中代码执行顺序

之前面试的时候有一道题,是考java的代码执行顺序的. 在大三的时候学习java语言的时候有说,但是在实际工作中用的比较少,所以在这里重新记录复习一下. 比如下面这段代码: class helloA{ public helloA(){ System.out.println("helloA"); } { System.out.println("I'm A"); } static { System.out.println("Static A"); }