es6-块级作用域
Posted Sunsin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es6-块级作用域相关的知识,希望对你有一定的参考价值。
块级绑定
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-块级作用域的主要内容,如果未能解决你的问题,请参考以下文章