ES6--新特性1(变量+函数)

ES6吸收了面向对象语言的特点,优化了很多使用方式。

新特性如下。

let定义变量

  • var是全局变量。
  • let只在声明的代码块中有效。
  • const类似于java final关键字,定义常量,不能修改。

字符串方法扩展

  • includes():是否包含子字符串。
  • startsWith():判断开始
  • endsWith():判断结尾

解构表达式

//定义数组-实现解构表达式
let arr=[1,2,3];
//a,b,c将获取数组每个位置对应的值
let [a,b,c]=arr;
//也可以匹配1个参数
let [x]=arr;
console.log(a);
console.log(x);

解构对象

//定义对象-实现对象解构表达式
let person = {
    name: "test",
    age: 18,
    language: ["java", "c++", "js"]
}
//解构赋值
let {name, age, language} = person;
console.log(name + ", " + age + ", " + language);
//解构对象,赋值给指定变量
let {name: n, age: a, language: l} = person;
console.log(n + ", " + a + ", " + l);

函数-设置默认值

//函数-设置参数默认值
function add(a, b = 1) {
    return a + b;
}
//使用函数
console.log(add(10));
console.log(add(10, 5));

箭头函数

//函数优化-箭头函数
//普通写法
function sum(a, b) {
    return a + b;
}

//优化写法-使用箭头
//箭头函数,函数体单行,无需使用{}
let sum2 = (a, b) => {
    return a + b;
}
console.log(sum(10, 5));
console.log(sum2(10, 6));

对象函数简写

//对象函数简写
let person = {
    name: "jack",
    //普通写法
    eat1: function (food) {
        console.log(this.name + "喜欢吃" + food);
    },
    //箭头写法--这里不支持this
    eat2: (food) => console.log(person.name + "喜欢吃" + food),
    //简化写法
    eat3(food) {
        console.log(this.name + "喜欢吃" + food);
    }
}
person.eat1("苹果");
person.eat2("苹果");
person.eat3("苹果");

map使用

//map的用法
//map接受一个函数,将原数组中的所有元素用这个函数处理后,放入新的数组返回
let arr=[1,2,3,4,5];
console.log(arr);
//对数组中的所有元素求平方
let newArr = arr.map(s=>Math.pow(s, 2));
//等同于
let newArr1 = arr.map(function (s) {
    return Math.pow(s,2);
});
console.log(newArr);

reduce使用

//reduce的用法
//reduce接收一个函数(必须)和一个初始值(可选),第一个参数是上一次reduce的结果,第二个参数是要处理的下一个元素
let arr=[1,20,-5,3];
let reduce1 = arr.reduce((a, b)=>a+b);
console.log(reduce1);

let reduce2 = arr.reduce((a, b)=>{
    return a+b;
}, 2);
console.log(reduce2);

reduce的调用逻辑:

扩展运算符

...:将一个数组转为用空格分隔的参数序列

let arr=[1,2,3,4,5];
console.log(arr);
console.log(...arr, ...arr);

结果如下:

Promise使用

//Promise是一个容器,保存着某个未来才会结束的事件(通常是一个异步操作)
let p = new Promise(function (resolve, reject) {
    let num = Math.random();
    if (num < 0.5) {
        resolve(num);
    } else {
        reject(num);
    }
});
//通过then和catch来处理不同的情形
p.then(value => {
    console.log("success "+value);
}).catch(value=>{
    console.log("error "+value);
})

支持Set和Map

//Set类似于数组,但不能存放重复元素
let s1=new Set([2,2,3,4,3]);
s1.add(6);
console.log(s1);

//Map
let m1=new Map([
    ["key1","value1"],
    ["key2","value2"]
]);
m1.set("key3", "value3");
console.log(m1);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值