您的位置:首页 > Web前端 > JavaScript

js的执行过程

2015-05-26 15:28 253 查看
其实这个执行过程很简单,但是为啥我还有写在博客里面呢,主要是为了找个地方做笔记,哈哈,生活在于开源,其实开放思想,share自己的想法也可以认为是开源。

好了,言归正传

当我们写好一个js文件后,想要成功的看到他的运行结果,这期间,经历了两个过程,这两个过程分别是预编译期和执行期,预编译期,做了什么事儿呢,对于变量来说,预编译期,会对带有 var 申明的变量进行一个初始化的过程,这里初始化是没有赋值的过程的哦,仅仅只是初始化,只有到了执行期,才会对这个变量进行赋值操作。那么对于函数来说呢,情况是这样的,在预编译期,实际上就已经对函数进行了定义,也就是已经把函数的定义加载到了内存中,当运行的时候,就可以直接调用,所以说,不管函数的调用是发生在函数定义之前还是之后,都可以正常运行,不会出现undefined的错误。下面我用代码来说明一下:

function fun() {

console.log("name=" + name);
var name = "carl";
console.log("name=" + name);
}
fun();


这段代码的运行结果是什么?

name=undefined

name=carl

那如果代码改称这样呢

function fun() {

console.log("name=" + name);
name = "carl";
console.log("name=" + name);
}
fun();


结果又会是什么样的呢?

结果是

name=carl

name=carl,这是为什么呢,因为我们对name没有用var来申明,那么这个时候,这个name实际上是一个全局的属性,我们知道js里面属性是先于函数编译的,所以,当运行到函数的时候,name已经有了定义,并且进行了赋值,因为他是全局变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: