ES6新特性

1.定义变量

let 定义的变量不会被变量提升,const 定义的常量不能被修改,let 和 const 都是块级作用域

var: 可以重复申明,无法限制修改,没有块级作用域

let: 不能重复申明,变量可以重新赋值,块级作用域

const:不能重复申明,常量不可重新进行赋值,块级作用域

console.log(food);  // undefined
var food= 'apple';

// 上面的代码相当于
var food;
console.log(food);
food = 'apple';

// 而 let 就不会被变量提升
console.log(food); // food is not defined
let food = 'hello';
var yourName= "yang";
yourName= "wang";
console.log(yourName); // wang

const yourName= "yang";
yourName= "wang"; // Assignment to constant variable.
console.log(yourName);

2.变量解构赋值

let a= 0;
let b=1; 
let c = 2;
// 相当于 let [a,b,c] = [0,1,2]

// 字符串解构
const [a,b,c,d] = yang";
// 相当于 a=y b=a c=n d=g

// 对象解构
let {a, b, ...demo} = {a: 1, b: 2, c: 3, d: 4};
// 相当于 a = 1 // b = 2 // demo = {c: 3, d: 4}

3.模板字符串

es5字符串拼接
let jspang='技术胖';
let blog = ' 我是你的老朋友'+jspang+' ';

es6 字符串拼接
反引, 变量,以及标签的使用
let jspang='技术胖';
let blog = ` 我是你的老朋友${jspang}。`;

运算符的使用
let a=1;
let b=2;
let result=`${a+b}`;

4.箭头函数

箭头函数的this指向上一层,上下文决定其this

基本语法:参数 => 函数体

函数不带{}
var add =(a,b=1) => a+b;
console.log(add(1));
函数带{}
var add =(a,b=1) => {
    console.log('jspang')
    return a+b;
};
console.log(add(1));

箭头函数还有有两个特性:

如果只有一个参数,“()”小括号可以省;

如果只有一个return, “ { } ”花括号可以省

/*let show=function(a){
    return a*2;
}*/
//可以简写成            
let show=a=> a*2;                            
alert(show(12))

5.Object.assign( )合并对象

var a={a:'jspang'};
var b={b:'技术胖'};
var c={c:'web'};
let d=Object.assign(a,b,c)
console.log(d); // {a: "jspang", b: "技术胖", c: "web"}

对象浅复制
let formData = Object.assign({}, row);

6.数组扩展

map  reduce  filter  forEach

map

//map 映射:一个对一个
let arr=[1,2,3];            
let result=arr.map(function(item){
   //alert(item)
    return (item*2)
})
alert(result)    // 2,4,6

//可以写成箭头函数
let arr=[1,2,3];             
let result=arr.map(item=>item*2);
alert(result)    // 2,4,6

//在写一个应用  let score=[90,50,58,60];
let result=score.map(item=>item>=60?"及格":"不及格");
alert(result)  //及格,不及格,不及格,及格

filter

// 过滤
//求能被2整除的
let arr=[22,12,21,11];
let result=arr.filter(item=> item%2==0)
alert(result)  //22, 12

forEach

forEach  —  循环(迭代)
let arr=[2,4,6];          
arr.forEach((item,index)=> { 
   alert(index+":"+item)
});    // 0:2    // 1:4   // 2:6

reduce

//reduce 汇总 一堆出来一个
// 总和 
var arr=[80,20,50];
let result=arr.reduce(function(tmp,item,index){
   //alert(tmp+','+item+","+index) 三个参数分别代表:中间结果、每次的数、下标
   return tmp+item;
})
alert(result)  // 150
        
//求平均数
let result =arr.reduce(function(tmp,item,index){    
    //不是最后一次
    if(index!=arr.length-1){
       return tmp+item;   //先求和
    } else {
       return (tmp+item)/arr.length;   //再求平均数
    }    
})
alert(result) // 50

7. import、export

1.模块化管理中一个文件就是一个模块,export可以导出多个方法和变量,export default只能导出当前模块,一个js文件中只支持出现一个

2.export default是唯一的,导出没有{},如export default a,import a from

export可以是多个,且要加{},如export {a,b},import {a,b} from

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值