es6-块级作用域let 和 var的区别
2017-10-27 16:43
120 查看
块级绑定
js的处理机制和我们大家想象的完全不同,并不完全是所谓函数调用以及上下执行那样简单,它是存有”域”的本质区别的。
var具有全局污染特性,所以es6才会出现let 、const。
下面通过一些实例来给大家解释一下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <!-- undefined和null的区别? undefiend是定义了未赋值,而null是未定义 --> </body> <script> // 我们所认识的 function getValue(any) { if (any) { var val = 'blue'; // 其他代码 return val; } else { console.log(val) // value值可以在此访问,值为undefined return null; } // value值在此处也可以访问,值为undefined } getValue(); // Js引擎所认识的 function getValues(anys) { var val; if (anys) { val = 'blue'; // 其它代码 return value; } else { return null; } } // 我们以为的var的作用域只限于那一块作用域内,实际上它已经跨越了“{}”界限。 // val变量的声明被提升到了函数顶部,初始化工作区域还保留在原区域。 // val变量也是可访问的,此处它的值会是undefined,因为它没有被初始化。 </script> </html>
相关文章推荐
- ES6学习记录-let和var的区别
- ES6中let与var的区别
- var与ES6中const、let声明的变量的区别
- js变量中有var定义和无var定义的区别,es6中let命令和const命令
- ES6 中let 与var区别
- ES6语法的let与var的区别
- ES6中的let和var的区别
- ES6中let与var的区别
- ES6 var和let和const 的区别
- es6中的let 和 var 的区别
- 由es6 let想到的块级作用域问题-面试题
- ES6中let与var的区别
- 【ES6系列】let-var-function 声明和作用域问题
- Javascript没有块级作用域(let 和var)
- ES6----var与let的区别
- Web端 es6(基础一) let var const 的区别
- JS中的块级作用域,var、let、const三者的区别
- ES6新特性:块级作用域let和const
- 深入理解ES6--块级作用域(let const)