首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
Web开发
> 详细
JS代码预解析原理
时间:
2014-10-25 18:53:46
阅读:
197
评论:
0
收藏:
0
[点我收藏+]
标签:
undefined
function
js代码
/* JS代码预解析、变量作用域、作用域链等 应该能作为学习JS语言的入门必备知识。下边给出些简要解释和一些典型的代码段,若要了解更多,能从网上搜索到更多相关示例。 引用网上的一段有关 “JS的执行顺序” 的解释:如果一个文档流中包含多个script代码段(用script标签分隔的js代码或引入的js文件),它们的运行顺序是:步骤1. 读入第一个代码段(js执行引擎并非一行一行地执行程序,而是一段一段地分析执行的)步骤2. 做语法分析,有错则报语法错误(比如括号不匹配等),并跳转到步骤5 步骤3. 对var变量和function定义做“预解析”(永远不会报错的,因为只解析正确的声明)步骤4. 执行代码段,有错则报错(比如变量未定义)步骤5. 如果还有下一个代码段,则读入下一个代码段,重复步骤2 步骤6. 结束 */ // 下边给出 三段觉得比较典型的代码示例: /********** 一:基本的几条语句 **********/ alert(num); // undefined var num = 0; alert(str); // 错误:str未定义 str = "string"; alert(func); // undefined var func = function (){ alert(‘exec func‘); } test(); // exec test alert(test()); // 先exec test 后undefined function test(){ alert(‘exec test‘); } /********** 二:函数名与变量名相同 **********/ //var mark = 1; function mark(x) { return x * 2; } var mark; alert(mark); // function mark(x) { return x * 2; } // 去掉前边的var mark = 1;则会返回1 /********** 三:把第二段包括在语句块中 **********/ // 当有条件时候(代码包含在条件语句块里) if (false) { var mark1 = 1; function mark1() { alert("exec mark1"); } //var mark1; alert(mark1); } alert(mark1); mark1(); // 由于解析浏览器解析不同,这段代码在不同浏览器里执行的结果不一致,具体原因可从网上查找答案
JS代码预解析原理
标签:
undefined
function
js代码
原文地址:http://9534197.blog.51cto.com/9524197/1567921
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
36.VUE — 认识 Webpack 和 安装
2021-07-28
【PHP】上传图片翻转问题
2021-07-28
php对数字进行万。亿的转化
2021-07-28
五个 .NET 性能小贴士
2021-07-28
Three.js中显示坐标轴、平面、球体、四方体
2021-07-28
.net 5+ 知新:【1】 .Net 5 基本概念和开发环境搭建
2021-07-27
1.html,css
2021-07-27
基于Docker搭建 Php-fpm + Nginx 环境
2021-07-27
nginx + http + svn
2021-07-27
kubernets kube-proxy的代理 iptables和ipvs
2021-07-26
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!