码迷,mamicode.com
首页 > 其他好文 > 详细

es6学习笔记1 --let以及const

时间:2016-03-29 00:49:41      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

let语句的基本用法:

 1.let声明的变量为块级作用域,只在最近的{}里面有效,如果在外部引用就会报错。

{
    let a = 10;
    var b = "hello"
}
 
alert( a ) //报错
alert( b ) // "hello"

  正是由于该特性,所以let语句十分适合用于循环语句中,用于定义局部变量。

  2.不会进行变量定义提前处理。在js语句中,通过var定义的变量存在变量声明提前的情况。就是在变量声明之前可以进行使用,但是这时该提前使用的变量值是undefined。而通过let定义的变量就不会存在该情况,如果在声明之前进行使用则会报错。该种情况也被叫做“暂时性死区”--在let定义之前不能进行任何有关该变量的操作,不然就会报错。

console.log(a) //undefinded
console.log(b) //error

var a = 10;
let b = "py";

  3.不能进行重复声明。即在同一个块级作用域内,let声明的变量不能和其他变量同名,就算是通过var定义的变量也不行。

function (c){
        let a = "py"; // 错误
        var a = "py";
       
        let b = 10; //错误
        let b = 11;

        let c = 12; //错误
}

const命令基本用法:

   1.const声明变量为常量,一经赋值之后就不能被修改。但是假如const声明的对象是复合类型对象,那么变量指向的是对象地址而不是数据,所以只要对象地址不发生改变,对象的属性可以变化。

const PI = 3.14
PI = 3
consol.log(PI) //在非严格模式下PI的值还是3,在严格模式下则会报错

const  obj = {}
obj.name = "py"; 
console.log(obj.name) //py
obj = {} //报错

  2.同let语句一样,const语句也具有块级作用域,声明不提前,不可重复声明的特性。

  3.跨模块常量的声明和引用。通过import和export关键字来进行声明和引用处理。

// a.js
export const NAME = "py"
export const AGE = 25
export const SEX = "boy"

//b.js
import * as constants from “./a"; // 路径要对
console.log(constants.NAME) // py

//c.js
import {AGE,SEX } from "./a"
console.log(AGE) // 25
console.log(SEX) // boy

 

    

es6学习笔记1 --let以及const

标签:

原文地址:http://www.cnblogs.com/pengyuan1990/p/5331175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!