常用写法、ES6语法的使用

字面量

let a = {};
// 等同于
let a = new Object();
let b = [];
// 等同于
let b = new Array();

简化操作

let a = 1;
let obj = { a }; // 等同于 let obj = { a: a}; 属性名跟变量名一样时可只写一个
// 原始写法
let a = {
say: function(){
}
}
// 简化写法
let a = {
say(){
}
}
// 原始
setTimeout(function(){
// ...
}, 1000);
// 箭头函数
setTimeout(()=>{
// ...
}, 1000);

声明

var 存在一些问题,例如:

for(var i = 0 ; i < 10 ; i++ ) {
// ....
}
console.log(i); // 这里能取到值10

let 局部变量声明,例如:

for(let i = 0 ; i < 10 ; i++ ) {
// ....
}
console.log(i); // 这里不能取到

const 常量

解构

// 给参数赋予默认值
let obj = {
a: 1,
b: 2,
c: 3
};
let {a, b, c: d, f = 1} = obj;
// 等同于 let a = obj.a;
// let b = obj.b;
// let d = obj.c; 这里是取了别名的
// let f = obj.f || 1; f为空则取默认值1

解构赋值

let [head, ...tail] = [1, 2, 3, 4];
// head => 1
// tail => [2, 3, 4]

函数默认值

// 给参数赋予默认值
function test(person = {}, orgId = 1){
// ...
}

字符串

// 字符串拼接可使用符号`,可使用参数
let name = '小明';
console.log(`hi~ ${name}`); // 输出 hi~ 小明

前端项目常用

export function getToken(code) {
// code 变量名跟值一样,则可直接这么写
return http.get(api.getToken, { params: { code } });
}
login() {
// 解构获取code
const { code } = this;
// 解构http请求返回的result中的data
getToken(code).then(({ data }) => {
// ...
});
}
loginName() {
const { chineseName, username } = this.loginUser;
// 使用`符号拼接字符串
return `${chineseName}${username}`;
}

参考资料