博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript基础有关----javascript的执行过程
阅读量:4971 次
发布时间:2019-06-12

本文共 962 字,大约阅读时间需要 3 分钟。

作为一个半路出家的菜鸟,对一些基础知识的了解不是很到位,感觉似懂非懂,雾里看花

等到用的时候就要调试一会才能找到正确的使用方法,但是有时候是没有调试的机会的,比如说去公司面试的时候做笔试题。

前段时间去一家公司面试,结果可想而知了。。。

废话说到这里,下面就记录一些最近去了解的一些基础。

一、javascript的执行过程

看这么道题吧:

 

 不卖官子,结果是:3,0,1,1

这里就是JS的一个执行过程的问题,当页面加载的时候会逐块读入script里的代码,然后进行一个预编译的工作,确定没有语法错误才会进行后续的执行工作。

在预编译的时候会将var声明的变量以及function提到代码的最前端(当然我们是看不到的),经过预编译完了的代码就可以理解成这样:

 

 另外就是var声明变量的时候不受if等一些判断语句的影响,即使执行的时候不会执行的代码里的var也会在预编译的时候提前。

例子:

 这的结果是undefined,然后会报错,1是不会弹出来的,然后会再弹出2。。充分说明了var不受条件语句的影响,这个例子也可以看得出来JS是按块来执行。

总而言之,JS在执行的时候这样滴:

1.读入一块JS代码段(可以理解为一段在script标签里的代码)

2.预编译(检查有没语法错误),说的通俗点就是将一些function与var等关键字声明放到最前面

3.如果没有语法错误,再执行代码,否则直接读入下一块代码段后跳至第2步骤

4.上一段代码执行过程中出现错误后不再向下执行,直接读入下一块代码段然后跳至第2步骤,直到所有代码执行完毕。

 

补充:

  关于var这个的意思一直以来我也没搞清楚,查了查资料,应该只是告诉浏览器有这么个东西存在,分配一个内存空间给他,但是并没有任何内容,预编译的时候应该就是做这些事吧。在赋值操作以后才会有东西存在其中,由于一般我们都是var str = '',这样连着写,于是就忽略了这其中其实还是另有天地的。

 

第一部分就这样吧,想起来再回来补充,后面的部分会相继记录下来。

posted on
2012-06-29 16:24 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/wangwc/archive/2012/06/29/2570137.html

你可能感兴趣的文章
POJ 1703 Find them, Catch them【种类/带权并查集+判断两元素是否在同一集合/不同集合/无法确定+类似食物链】...
查看>>
L1-5. A除以B【一种输出格式错了,务必看清楚输入输出】
查看>>
Git一分钟系列--快速安装git客户端
查看>>
bzoj 3160 万径人踪灭 —— FFT
查看>>
poj3254二进制放牛——状态压缩DP
查看>>
使用 ref 和 out 传递数组注意事项
查看>>
combobox和textbox中输入数据为非数字leave时的公用事件,只需要在控件的leave事件中选择本事件即可...
查看>>
纵越6省1市-重新启动
查看>>
hive安装以及hive on spark
查看>>
勇者无畏
查看>>
12864点阵液晶显示模块的原理和实例程序(HJ12864M-1)
查看>>
jz1074 【基础】寻找2的幂
查看>>
Wannafly模拟赛5 A 思维 D 暴力
查看>>
C#控制台程序实现鼠标左右手习惯切换
查看>>
C++ 继承、函数重载
查看>>
Javascript获取select下拉框选中的的值
查看>>
并发编程注意的问题
查看>>
angular--ngResource的简单使用
查看>>
android本地数据库,微信数据库WCDB for Android 使用实例
查看>>
如何快速三个月成为一个领域的高手的四个方法
查看>>