es6学习笔记1 --let以及const
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es6学习笔记1 --let以及const相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章