1、const

(1)给常量赋值并输出

<script>
            const定义的变量是一个常量,不可以修改,而且定义的时候必须给常量赋值-->
           const b = 2;
           console.log(b);        script>

测试:

js:变量的声明方式(const、var、let)_js

 可以正常输出

(2)修改

    <script>
            const定义的变量是一个常量,不可以修改,而且定义的时候必须给常量赋值-->
           const b = 2;
           b=5;
           console.log(b);        script>

js:变量的声明方式(const、var、let)_变量_02

 (3)不赋值

<script>
            const定义的变量是一个常量,不可以修改,而且定义的时候必须给常量赋值-->
           const b;
           console.log(b);        script>

js:变量的声明方式(const、var、let)_const_03

const可以保证数据的安全性,虽然不能改变对象的值,但是可以改变对象的指向。 

 

2、var

(1)定义并赋值

    <script>
            var定义的变量可以修改,如果不初始化会输出undefined,不会报错-->
           var b=12;
           console.log(b);        script>

js:变量的声明方式(const、var、let)_变量_04

 可以正常输出

(2)修改值

<script>
            var定义的变量可以修改,如果不初始化会输出undefined,不会报错-->
           var b=12;
           b=34;
           console.log(b);        script>

js:变量的声明方式(const、var、let)_变量_05

 可以修改变量的值

(3)不赋值

<script>
            var定义的变量可以修改,如果不初始化会输出undefined,不会报错-->
           var b;
           console.log(b);        script>

js:变量的声明方式(const、var、let)_js_06

 输出undefined

 (4)不声明,不赋值

    
            console.log(sname);        " _ue_custom_node_="true">

js:变量的声明方式(const、var、let)_const_07

 (5)不声明,直接赋值,可以使用但是不提倡

    
            uname="zhai";
            console.log(uname);        " _ue_custom_node_="true">

js:变量的声明方式(const、var、let)_js_08

 

3、let

    <script>
            let是块级作用域,函数内部使用let定义后,对函数外部无影响-->
                let a = 1;
             console.log('函数执行前:' + a);
             function test(){
             let a = 2;
             console.log('函数内改变变量的值为:' + a);
             } 
             test();
             console.log('调用函数后:' + a);        script>

js:变量的声明方式(const、var、let)_变量_09

 在函数内部对变量值的改变,不会影响到函数的外部改变量的值。

 ES5只有函数有块级作用域的概念,ES6中的块级作用域包括函数、for循环、if,块及作用域。

 

4、ES6对字面量的增强写法

(1)ES5的写法

const student = {
        name: "zhai",
        age: 12,
        eat: function () {
            console.log("eat")
        }
    }" _ue_custom_node_="true">

(2)ES6属性

const name="zhai";  const age=12;  const student={
     name,
      age
  }
  console.log(student)" _ue_custom_node_="true">

(3)ES6函数

const name = "zhai";    const age = 12;    const student = {
        run() {
          console.log("run")
        },
        eat() {
          console.log("eat")
        }
    }
    console.log(student.eat())
    console.log(student.run())" _ue_custom_node_="true">