1.为什么学习预解释
1)避免代码的很多不过范写法
2)带var和不带var是有区别的
3)代码写在里面和外面是有区别的;
2.什么是预解释
在当前作用域下,在JS代码执行之前,
浏览器会对带var和function的进行提前声明和定义;
3.带var和不带var的区别
1)带var的:
1.在全局变量下,属于window的全局变量
2.带var的会进行预解释
2)不带var的:
1.属于window的全局属性
2.不带var不会进行预解释
3.预解释的6点总结
1.只对等号左边带var 的,声明不定义。
2.已经声明过的不会重新声明,只会重新赋值。
3.在声明阶段,函数的优先级大于变量。
4.自执行函数不会进行预解释,执行到的时候,声明加定义加执行。
5.条件判断语句中,不管条件是否成立都会进行预解释。
6.return后面的语句不会进行预解释,下面的会进行预解释但是不会执行。
4.堆内存和栈内存
堆内存:堆内存用来存放引用数据类型。
栈内存:提供一个供js代码执行的环境;里面可以放轻量级数据,基本数据类型。
网友评论