ES6基础介绍

ES6,全称ECMAScript6.0,也是一种规范。
数据类型:
1.值类型(基本类型):

  • 字符串(String)
  • 数字(Number)
  • 布尔(Boolean)
  • 对空(Null)
  • 未定义(Undefined)
  • Symbol(注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。

2.引用数据类型:

  • 对象(Object)
  • 数组(Array)
  • 函数(Function)

let用法

1、let 不能进行变量提升
2、let 具有块级作用域 {}它之间的内容就可以称之为块

注意
(1)同一块作用域内,不允许重复声明变量
(2)函数内不允许使用let重新声明函数的参数

例1:点击按钮弹出对应的索引

    var arr = [];
    for(var i=0;i++;i<10){
         arr[i] = function(){
             console.log(i);
         }
     }
     arr[1](); //输出结果:10


    //把var换成let
    var arr = [];
    for (let i = 0;i < 10; i++ ) {
        arr[i] = function () {
            console.log(i)
        }
    }
    arr[4](); //输出结果:4

例2:

var a = 1;
(function(){
    alert(a);
    var a = 2;
}) (); 
//弹出undefined,因为一开始做到了变量提升,只提升var的,
//alert只是定义(声明)了,没有赋值

例3:

 var a = 1;
 (function(){
     alert(a);
     let a = 2;
 }) ();  //输出结果:a is not defined

const

定义常量,顾名思义,常量就是不可以改变的量。
常量的特点:
1.不可修改

    const name = '张三';
    name = '李四'; //报错:Assignment to constant variable

2.只有块级作用域有效果

    if(true){
         const name = '李四';
        console.log(name); //输出结果:李四
     }
     if(true){
         const name = '李四';
    }
    console.log(name); //输出结果:空
  1. 不存在变量提升,必须先声明后使用
     if(true){
         console.log(name);
         const name = 'abc'; //报错:Cannot access 'name' before initialization
     }
  1. 不可重复声明同一个变量
     var name = '张三';
     const name = '李四'; //报错:Identifier 'name' has already been declared
  1. 声明后必须要赋值
   const name; //报错:Missing initializer in const declaration

    //常量在对象中的应用
     const Person = { 'name': '张三', 'age': 20 };
     Person.name = '李四';
     Person.age = 30;
     console.log(Person); //输出结果:{name: "李四", age: 30}

数据类型:基本数据类型(按值传递),引用数据类型(按地址传递)

  const Person = { 'name': '张三', 'age': 20 };
    Person.name = '李四';
    Person = {'sex':'男'};
    console.log(Person); //报错:Assignment to constant variable.
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页