标签:efi 声明 cti 默认 声明和定义 赋值 类型 解释 对象储存
正式课---预处理 预处理的解释(变量提声) 在当前的作用域中,JS代码执行之前,浏览器首先会默认的把所有带var和function的进行提前的声明或者定义
1)理解声明和定义 var num =12; 声明(declare):var num; 告诉浏览器在全局作用域中有一个叫num的变量了 定义(defined) num=12;给变量赋值 2)对于带var和function的关键字的在预解释的时候操作还是不一样的 var在与解释的时候只是提前的声明 function在预解释的时候提前的声明+定义都完成了 3)预解释只发生在当前的作用域下,例如:开始只对window下的进行预解释,只有函数执行的时候才会对函数中的进行预解释 4)JS中内存的分类 栈内存:用来提供一个供JS代码执行的环境 ,作用域(全局作用域/私有的作用域) 堆内存:用来存储引用数据类型的值,对象储存的是属性名和属性值,函数储存的是代码字符串。。。 比如console.log(num); var num =12; 这个时候console之前浏览器已经默认声明过num了,但是因为还没有赋值,所以输出是undifined,因为有了预解释所以不会报错 函数执行可以写在函数之上,这就是因为预解释的时候会声明加定义的缘故
标签:efi 声明 cti 默认 声明和定义 赋值 类型 解释 对象储存
原文地址:http://www.cnblogs.com/woaiqiaodaima/p/6664307.html