Bootstrap

ES6语法: let和const区别

var变量穿透问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // let和const 解决
        // 1:var变量穿透的问题
        // 2:变量修改的问题
        for(var i=0;i<5;i++){
            console.log(i);
        }
        // 这里就造成变量穿透
        console.log(i);
    </script>
</body>
</html>

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // let和const 解决
        // 1:var变量穿透的问题
        // 2:变量修改的问题
        for(let i=0;i<5;i++){
            console.log(i);
        }
        // 这里就造成变量穿透
        console.log(i);
    </script>
</body>
</html>

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // let和const 解决
        // 1:var变量穿透的问题
        // 2:变量修改的问题
        for(let i=0;i<5;i++){
            console.log(i);
        }
        // 这里就造成变量穿透
        // console.log(i);
        var PI = Math.PI;
        PI = 100;
        console.log(PI);
    </script>
</body>
</html>

在这里插入图片描述

const PI = Math.PI;
        PI = 100;
        console.log(PI);

在这里插入图片描述
const 定义的常量不可以修改。
在实际开发中,在脚手架,uni-app,小程序中可以大胆使用let和const,如果是web开发建议使用var,因为在低版本的浏览器不支持let和const

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;