文 / 景朝霞
来源公号 / 朝霞的光影笔记
ID / zhaoxiajingjing
图 / 自己画
❥❥❥❥点个赞,让我知道你来过~❥❥❥❥
前情提要:
1 /
请回答
a = 1;
console.log(a);
console.log(window.a);
var b = 2;
console.log(b);
console.log(window.b);
2 /
带var和不带var的区别
来,看图说话
△ 题目 | 带VAR和不带VAR的区别
△图解 | 带VAR和不带VAR的区别
在执行栈内存中,会声明一个GO(global object)全局对象。浏览器默认把它指向window对象,node默认把它指向global对象。
在window对象上会有常用的方法或属性:window.setTimeout、window.alter、window.innerHeight ...
那么,在全局作用域中:
- 不带VAR的,相当于给全局对象window设置了一个属性,即:window.xxx。
- 带VAR的,是在全局作用域下声明了一个变量。同时,也在window上增加了一个对应的属性。
注意:栈内存&堆内存可以存储的东西
3 /
动动手,画一画
看着都不难,其实也不难~~~~
把想到的东西转换成文字描述出来,写下来吧~
- 结果?
console.log(a);
var a = 1;
a = 2;
console.log(a);
- 结果?
console.log(a);
a = 1;
console.log(a);
- 结果?
console.log(a);
let a = 1;
a = 2;
console.log(a);
4 /
预告:记住他们
prop in object
obj.hasOwnProperty(prop)
沟通交流
△ 文章首发
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。