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. java_字符

    例一:数据类型转换 package javaweb1200; public class 字符就是数字吗 { public static void main(String[] args) { Syste ...

  2. 小白日记27:kali渗透测试之Web渗透-Http协议基础,WEB

    Http协议基础 Web技术发展[http://www.cnblogs.com/ProgrammerGE/articles/1824657.html] 静态WEB[网页] 动态WEB 属于一种应用程序 ...

  3. 用CCRenderTexture和BlendFunc制作游戏教学时使用的黑色覆盖层

    游戏快要完成了,准备做教学. 我们的教学是在整个界面上盖一层灰色图片,然后把提示点击的按钮部分亮出来,也就是在一块黑色图片上,按需求扣空一小部分.如图,把武器部分扣空,那么在其它地方又会扣空其它部分, ...

  4. South——谁说Django不能migrate!

    零.前言 最近改一个项目,需要对已有的model进行更改.大家都知道Django自带的syncdb只能创建数据库,但是无法将已经改变的model应用的数据库中. 大概两年前遇到这个问题的时候,网上的答 ...

  5. [转]关于ASP.NET(C#)程序中TEXTBOX下动态DIV跟随[AJAX应用]

    本文转自:http://blog.csdn.net/lolenboy/article/details/1665814 说明: 环境:ASPNET(c#),SQL2K 事例:TEXTBOX下跟随DIV, ...

  6. [改善Java代码]用枚举实现工厂方法模式更简洁

    工厂方法模式(Factory Method Patter)是"创建对象的接口",让子类决定实例化哪一个类,并使一个类的实例化延迟到其子类.工厂方法模式在我们的开发工作中,经常会用到 ...

  7. 关于Windows常用命令

    本文引用自:http://ylbook.com/cms/computer/mingling.htm Windows Run命令: calc———–启动计算器certmgr.msc—-证书管理实用程序c ...

  8. Android开发需要注意的坑

    Android开发需要注意的坑一览​对于一些Android开发过程中坑爹.细小,但又重要的错误的总结​Android开发在路上:少去踩坑,多走捷径其他参考: ​google官方版本发布图 ​umeng ...

  9. ACM进阶

    ACM队不是为了一场比赛而存在的,为的是队员的整体提高. 大学期间,ACM队队员必须要学好的课程有: l C/C++两种语言 l 高等数学 l 线性代数 l 数据结构 l 离散数学 l 数据库原理 l ...

  10. React Native 实现MQTT 推送调研 (1)

    一.推送几种实现方式: (1)通过SMS(Short Message Service,短信群发服务系统) 进行服务器端和客户端的交流通信.在Android平台上,可以通过拦截SMS消息并解析内容来了解 ...