常用写法、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})`;
}