ES6新特性概要
1、es6新特性之-let
声明变量方便 如:let a =’ ', b = [] , c = ‘字符串’;
let 新特性1— 变量不能重复声明
如: let str = ’ 小明 ';
let str = ’ 小红 ';
***避免变量污染,如写项目的时候逻辑一复杂用到相似变量多的情 况控制台会给出报错信息;
let 新特性2— 块级作用域
如 在使用 if、else、while、for 的时候 会有代码块 { }
如 {
let a =‘你好’
}
console.log(a) // a 这个变量会报underfine
let 新特性3— 不存在变量提示(与var 相比较)
如 {
console.log(str)
let str = ‘ 小明 ’;
//这时控制台会直接标红报错,意思变量未被赋值,如果是var 的这个 变量,则控制台只是有个黑色的underfine 而未标红,因为var 有变量提升效果
}
let 新特性3— 不影响作用域链
如 {
let a = 'woshilet ’
function fn (){
console.log( a )
}
//这时候a 是能输出出来的 为 'woshilet '
}
2、es6新特性之-const
1、声明的常量值不能被修改
如 const a = ‘ 我是常量,不能被修改’
a = ' 我被修改了 '
consol.log( a ) \\ 控制台报错 a 不能 被修改
**** 注意:但是对于数组 、对象 可以修改里面的值 因为 数组和对象 指的是地址
如 const arr = 【 a, b, c】
arr.push( d)
console.log( arr ) // 控制台输出 【a,b,c,d】
2、同样存在块级作用域
{
const a= ' woshichangliang '
}
console.log( a ) // 控制台会直接标红报错,这个常量未被定义
3、es6新特性之-结构赋值
如 const yang={
name:‘冲冲’,
age :‘18’,
hanshu:function (){
console.log(‘我是对象里的函数’)
}
}
let [a,b,c] =yang
console.log(a) //第一个变量为 ‘冲冲'
console.log(b) //第二个变量为 ‘18'
console.log(c) //第三个变量为 冲冲'
hanshu() // 控制台会执行这个函数
4、es6新特性之-模版字符串
1、可以直接换行
2、可以直接引用变量 ${}
let bbb=’ 你好 ’
eg: let str =’ ${bbb} 我是程序员’
console.log(str) // ' 你好我是程序员 '
5、es6新特性之-{里的简写}
let name =’ 小明 ’
let change = function(){
console.log( ’我是函数‘ )
}
const arry ={
name,
change,
hanshu2 (){
console.log(‘函数2’)
}
}
console.log(’ arry’)
{
name :’ 小明 ',
change: function(){
console.log( ’我是函数‘ )
} ,
hanshu2 :hanshu2 (){
console.log(‘函数2’)
}
}