JS中的作用域分为两种:全局作用域和函数作用域。
> 函数作用域中定义的变量,只能在函数中调用,外界无法访问。
> 没有块级作用域导致了if或for这样的逻辑语句中定义的变量可以被外界访问,
> 因此ES6中新增了let和const命令来进行块级作用域的声明。
```
//循环绑定的问题
for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1);
}
for (let i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1);
}
```
//作用域链 变量的查找机制
// 上级作用域 函数在哪里定义的,那么该函数执行形成的作用的上级作用域就是谁
// 了解了上级作用域, 就比较容易查找变量对应的值
- 介绍
- 原生JS
- 1.ES6的新特性
- 2.JS的数据类型
- 3.定义函数的方法
- 4.JS作用域的理解
- 5.闭包的理解
- 6.数组去重
- 7.原型及原型链
- 8.Object.create的作用
- 9.new的执行过程是怎么回事
- 10.call,apply,bind三者的区别
- 11.实现类的继承
- 12.谈谈你对this指向的理解
- 13.DOM
- 14.JS的异步编程
- 15.正则
- http&ajax
- 1.TCP/IP的三次握手和四次挥手
- 2.http常用状态码(http-status-code):
- 3.从浏览器输入URL按回车到页面显示都发生了什么?
- 4.HTTPS和HTTP的区别
- 5.浏览器缓存?
- 6.ajax四步
- 7.一般我们再拦截器中都会写什么代码?
- 8.get请求和post请求有什么区别?什么时候使用post?
- 9.Cookie 和 Session 的区别?
- 10.Token 相关
- 11.什么是同源策略?