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. codeforces Gym 100500C C. ICPC Giveaways 排序

    Problem C. ICPC GiveawaysTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/1005 ...

  2. springmvc03 非注解和注解处理器映射器和适配器

    1其它非注解处理器映射器和适配器 .1BeanNameUrlHandlerMapping(映射器) 根据请求url(XXXX.action)匹配spring容器bean的 name 找到对应的bean ...

  3. Python学习 之 流程控制

    1.if else 语法:if expression1: statement1(s) elif expression2: statement2(s) else: statement3(s) 2.for ...

  4. 解决用ASP.NET下载文件时,文件名为乱码的问题

    关键就一句:                    string strTemp = System.Web.HttpUtility.UrlEncode(strName, System.Text.Enc ...

  5. YAR 并行RPC框架研究

    前几天,部门召开了PHP技术峰会 学习会议,大家分别对这次会议的PPT 做了简单的介绍, 其中提到了 鸟哥[惠新辰]的一篇PPT<微博LAMP 演变>,如果谁有需要可以去谷歌搜,或者去 h ...

  6. Eclipse launch failed.Binary not found解决方案

    配置完成后建立工程测试,发现建立Hello World c++ Project类型的项目后可以运行测试,直接建立空项目写个测试类无法运行,提示"launch failed.Binary no ...

  7. Sky number

    描述 key 天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=22,它的十六进 制数BB0,其四位数字之和也为22,同时 ...

  8. python分页和session和计算时间差

    分页 #!/usr/bin/env python # -*- coding:utf-8 -*- class Pagenation: def __init__(self,current_page,all ...

  9. reset.css(详细说明)

    @charset "utf-8";/************************************************************************ ...

  10. js中将字符串转换成json的方式

    1.eval 方式解析,实际中用的还是比较少 function evalJson(str){ var json = eval('(' + str + ')'); return json; } 2.使用 ...