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-块级作用域的主要内容,如果未能解决你的问题,请参考以下文章

ES6入门一:块级作用域(let&const)spread展开rest收集

javascript中的作用域

前端开发说说ES6核心基础中的let和const命令

什么是快级作用域,es6中如何实现块级作用域

es6读书笔记——块级作用域

ES6 块级作用域