script代码段

1、script代码段的执行

在Javascript代码中,可以使用script作为基本标识,script代码段在运行过程中是分段解析与执行的。

2、script代码段执行流程

在Javascript代码中,script标签是分段解析与执行的,也就是说先执行第一段script代码,然后解析与执行完毕后在执行第二个script代码,依次类推:

1)读入第一个代码段

2)编译

声明变量、声明函数、语法检查、语义检查、代码优化、分析并得到代码树。

3)执行

变量的赋值,函数的调用,代码的执行都是发生在执行阶段。

例如:var i = 10这样一行代码,要经历两个阶段(编译与执行)

编译阶段:声明变量var i = undefined;

执行阶段:i = 10;

4)读入下一个代码段

5)编译

6)执行

7)……

8)结束

3、编译错误与执行错误对当前代码段的影响

1)编译错误:在编译时发生的错误就是编译错误

运行结果:直接报错

由此可以得出结论:如果在script代码段中发生编译错误,其对整个当前script代码段是致命的。

2)执行错误:在执行时发生的错误就是执行错误

运行结果:弹出10,然后报错

由此可以得出结论:当执行错误发生时只会对当前代码下面的代码有影响而不会对上面的代码产生任何影响。

4、编译错误与执行错误对下一个script代码段的影响

1)编译错误对下一个script代码段的影响

运行结果:可以正常弹出world

由此可以得出结论:编译错误只对当前script代码段有影响而对下一个script代码段没有任何影响。

2)执行错误对下一个script代码段的影响

运行结果:弹出world

由此可以得出结论:执行错误也只会对当前script代码段下面的代码有影响,但是不会对下一个script代码段产生任何影响。

 

综上所述:无论是编译错误还是执行错误都只会对当前script代码段有影响而不会对下一个script代码段有任何影响,因为Javascript中的script代码段是分段解析与执行的。

5、script执行原理图

Script 代码段的更多相关文章

  1. 有一段<script>代码,效果是点击<p>就会弹出信息,但是有的<p>点击会有效果,有的没有效果

    问题:有一段<script>代码,效果是点击<p>就会弹出信息,但是有的<p>点击会有效果,有的没有效果 解决: 页面代码是至上而下执行的,如果你的这个标签在< ...

  2. js 如何保存代码段并执行以及动态加载script

    1.模块化开发 通常使用的是 export和import 实现代码的共享和导入 2.特殊情况下需要将代码段作为参数传递 可以使用function 的toString方法将整合函数和里面的代码批量转化为 ...

  3. 让 innerHTML 进来的 script 代码跑起来

    今天来简单聊聊如何让 innerHTML 进来的 scrip 代码跑起来的问题. 前台请求一个接口,接口返回一些 HTML 标签拼接成的字符串,以供前端直接 innerHTML 生成 DOM 元素,这 ...

  4. 50个必备的实用jQuery代码段

    本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助 ...

  5. 实用的JS代码段(表单篇)

    整理了下比较实用的Javascript代码段,完整的代码参考 1 多个window.onload方法 由于onload方法时在页面加载完成后,自动调用的.因此被广泛的使用,但是弊端是只能实用onloa ...

  6. 利用sublime的snippet功能快速创建代码段

    在前端开发中我们经常会输入相同的一些基本代码,例如常用的jquery引用,bootstrap框架,cssreset等等,如果每次使用时在复制粘贴感觉很麻烦,这里介绍一种更为简洁的方法 利用sublim ...

  7. 50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段

    50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段 本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从j ...

  8. chrome小书签-实用的小功能-javascript代码段

    1.打印页面的所有脚本引用文件及代码段: javascript:var scriptarray=document.getElementsByTagName("script");fo ...

  9. sublime自定义代码段

    打开tools>developer>new snippet 默认代码 <snippet> <content><![CDATA[ Hello, ${1:this ...

随机推荐

  1. ios开发——仿新版iBooks书本打开与关闭动画

    IOS新版iBooks吸引人的地方除了有干净整洁的界面.方便灵活的操作以及大容量的书籍容量以外.还有其优秀的用户交互,尤其是其动画的使用.打开一本书时书本缓慢放大并打开.关闭一本书后书本关闭并回到原位 ...

  2. stm32上的Lava虚拟机开发进度汇报(3)

    感觉遇到一个瓶颈了,这几天都没有什么进度. 前几天把函数和一些最基本的伪指令实现了一下,能跑一点仅使用了绘图函数的lav,但是函数调用的问题一直没解决. 后来发现是粗心漏写了个++,解决了函数调用的问 ...

  3. Java模拟登陆【转载】

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...

  4. C#文件读写常用类介绍

    首先要熟悉.NET中处理文件和文件夹的操作.File类和Directory类是其中最主要的两个类.了解它们将对后面功能的实现提供很大的便利.      本节先对和文件系统相关的两个.NET类进行简要介 ...

  5. 不会内存溢出的Android Handler写法

    private static class ThisHandler extends Handler {     private final WeakReference<MainActivity&g ...

  6. C链表操作

    #define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <string.h> #include <std ...

  7. mysqldump原理1

  8. hdu 3849 (双联通求桥)

    一道简单的双联通求桥的题目,,数据时字符串,,map用的不熟练啊,,,,,,,,,,,,, #include <iostream> #include <cstring> #in ...

  9. DataBase 之 实用积累

    (1)分页:(性能效果最好的是top/max 和Row_number()两种方法) [1]写法1,not in/top select top pagesize * from pagetest wher ...

  10. byte[] bytes和string转换

    public static string ToHexString ( byte[] bytes ) // 0xae00cf => "AE00CF "        {     ...