1,我们JS引擎运行js 分为两步 : 预解析 代码执行
(1)预解析: js引擎会把js里面所有得 var 还有 function 提升到当前作用域的最强面
(2)代码执行: 按照代码书写的顺序从上往下执行
2,预解析分为 变量预解析(变量提升)和 函数预解析(函数提升)
(1)变量提升 就是把所有的变量声明提升到当前作用域的最前面 不提升赋值操作!
console.log(num)
var num = 10; //undefined 坑1
fn();
function fn(){
console.log(11); //输出11 正常
}
fun();
var fun = function(){
console.log(22); 报错 坑2
}
对象:
1,什么是对象:
现实生活中 : 万物皆对象,对象是一个具体的事物,看得见摸得着的。例如:一本书,一辆汽车,一个人,可以是”对象“,
一个数据库,一张网页,一个与远程服务器的连接也可以是”对象“。
2,在javaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串,数值,数组,函数等。
属性:事物的特征,在对象中用属性来表示(常用名词)