ES6 新语法

5 篇文章 0 订阅
1 篇文章 0 订阅

ES6 新语法


新的变量声明关键字

let 关键字声明变量:
1.预解析时不会作变量提升;
2.不能重复声明;
3.具有块级作用域;
4.可以重新赋值
   console.log(food);        //报错 没有变量提升
   let food = '糖醋里脊';    
   let food = '回锅肉';        
   console.log(food);      //报错 不能重复声明

   { let drink = '橙汁'; }
        console.log(drink);      //报错 有块级作用域

   let fruit = '苹果';
       fruit = '香蕉';
   console.log(fruit);      //打印出香蕉
const 关键字声明一个常量:
1 . 不可以重新赋值 ;
2 . 没有变量提升 ;
3 . 不能重复声明 ;
4 . 具有块作用域 ;
	 console.log(firstName);       //报错  常量没有预解析,不会变量提升
        
     const firstName = '谢';
     firstName = '王';
     console.log(firstName);       //报错 常量无法通过重新赋值进行修改
        
     const firstName = '李';       //报错  常量不能重复声明

     {const name = '小王'};
     console.log(name);            // 报错 常量具有块级作用域,
var 关键字声明变量:
1 . 有变量提升;
2 . 可以重复声明;后面覆盖前面的;
3 . 没有块级作用域;
4 . 可以重新赋值;

解构赋值

对象解构赋值:
let {name,age,sex} = { name:'谢总' , age:21 , sex:"man"};
console.log(name , age , sex);            // 谢总  21  man

let {name,age,sex} = { name:'谢总' , age:21 };
console.log(name , age , sex);            // 谢总  21  undefined

let {name = '暂无数据',age = '暂无数据',sex = '暂无数据' } = {name:'谢总' ,age:21 ,sex:"nan"};
console.log( name , age , sex );              // 谢总

let {name = '暂无数据',age = '暂无数据',sex = '暂无数据'} = { age:21 , sex:"nan"};
console.log( name );                      // 暂无数据

数组的解构赋值:
let [a,b,c] = [12 , 15 , 16];
console.log( a , b , c );        //12 15 16

let [d,e,f] = [12 , 15];
console.log( d , e , f );        //12 15 undefined

let [g , h] = [1 , [ 2 , 3 ] ];
console.log(g , h);              // 1  [2,3]
        
let [i = '暂无数据' , g = '暂无数据' , k = '暂无数据'] = [12 , 13]
console.log(i,g,k);              // 12  13  暂无数据
实际应用:
function test ( { name , age , sex} ){
	 console.log('他的名字是'+ name);
     console.log('他的年龄是'+ age);
}
var obj = { name:'谢总' , age:21 , sex:'男' };
test(obj);

箭头函数

匿名函数的简写形式
1.如果形参只有一个, 可以省略小括号.
2.如果没有形参个或者多个,不能省略小括号.
3.如果函数体只有一句话,大括号也是可以省略的.
4.如果函数体只有一句话,并且是返回值的那一句话, 那在省略大括号的同时也要省略return.
5.如果函数体不止一句话,就不能省略大括号.
let test = function (name){
	console.log('你好呀!!' + name );
}
test('老谢');				
//---------------------------------------------------------------------------------------

let test = name => console.log('你好呀!!' + name);
test('老谢');				//如果形参只有一个, 可以省略小括号.
						  //如果函数体只有一句话,大括号也是可以省略的.
//---------------------------------------------------------------------------------------
let test = (name , age) => {
     console.log('你好呀!!' + name);
     console.log('我今年' + age + '岁');
}
test('老谢', 36);      //如果函数体不止一句话,就不能省略大括号.
let test = function (){
	return 100;
}
test();				//如果函数体只有一句返回值,那在省略大括号的同时也要省略return.简写如下:
//---------------------------------------------------------------------------------------
let test = () => 100;
test();               

模板字符串

模板字符串 ( 用做字符串连接 )

	var name = ‘老邓’;
	var age = 19;
	var str = `大家好,我叫${name},今年${age}岁了!!!`;

对象属性简写

对象属性简写,属性名和属性值是同名的情况下,可以简写
const name = '老王';
const age = 40;
const sex = '男';
const score = 99;
//---------------------------------------------------------------------------------------
let obj1 = {
    name : name,
    age : age ,
    sex : sex
};
console.log(obj1);       // { name:'老王' , age:40 , sex:'男' }
//---------------------------------------------------------------------------------------
let obj2 = {
     name,
     age,
     sex 
};
console.log(obj2);       // { name:'老王' , age:40 , sex:'男' }
//---------------------------------------------------------------------------------------
let obj3 = {
     name,
     age,
     sex,
     fenshu:score
};						 // { name:'老王' , age:40 , sex:'男' , fenshu:99}

对象和数组的展开

对象的展开
  var obj1 = {name : '老李', age : '22', sex : '男' } ;   
  var obj2 = {number : 1 , score : 60};

  var obj3 = {...obj1 , ...obj2};
  console.log(obj3);

  var obj4 = {...obj2 , name : '老王' , score: 50 };
  console.log(obj4);               //如果有同名的属性,后面的会把前面的给覆盖.
数组的展开
  let arr1 = [2, 3, 4];
  let arr2 = [5, 6, 7];

  let arr3 = [...arr1, 4, 5];
  console.log(arr3);              // [ 2, 3, 4, 4, 5 ]
        						  //相同项不会被覆盖
  let arr4 = [...arr1, ...arr2];
  console.log(arr4);              // [ 2, 3, 4, 5, 6, 7 ]  相当于数组的拼接

  var arrNew1 = arr1.concat([5,6,7]);
  console.log(arrNew1);            // [ 2, 3, 4, 5, 6, 7 ]
  var arrNew2 = arr1.concat(arr2);
  console.log(arrNew2);            // [ 2, 3, 4, 5, 6, 7 ]             

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值