let const命令

let命令

let实际上为 JavaScript 新增了块级作用域。
var声明全局作用域,let声明局部作用域

<!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>Title</title>

</head>
<body>

</body>
<script>

    let a = 10;
    var b = 18;
    {let c = 28}
    let d = 38;

    console.log(d); // 38
    console.log(c); // 报错。 c is not defined

    console.log(window.a); // undefined
    console.log(window.b); //18

</script>
</html>

const

const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,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>Title</title>

</head>
<body>

</body>
<script>
    const a = 10;
    // let a = 35; //报错
    const list = [];
    list.push('hello'); //成功
    // list = ['大吉大利'] // 报错

    const dict = {};
    dict.prop = 125;
    console.log(dict); // {prop: 125}
</script>
</html>
posted @ 2018-08-24 22:10  Jason_lincoln  阅读(141)  评论(0编辑  收藏  举报