引用稍稍牺牲了一点自由度,但是避免了野指针,空指针的问题。
常用语言的赋值:
a=b
都是复制。a=&b
,是取地址。a=b
都是复制。a=&b
,是传引用。a=b
是复制。对于复杂类型a=b
是传引用。a=b
是复制。对于复杂类型a=b
是传引用。浅拷贝
a = {...b}
深拷贝可以用radash库
export A
export B
import {A,B} from ""
export default XXX
import AAA from ""
let love = `肉肉
前面有换行符`
let out = `我喜欢吃${love}`;
let name = 'aaa';
let age = 16;
let school = {
name ,
age,
}
() => {
}
箭头函数this始终指向声明时的this,而function(){}定义的this指向调用者
// 传统写法
step1(function (value1) {
step2(value1, function(value2) {
step3(value2, function(value3) {
step4(value3, function(value4) {
// ...
});
});
});
});
// Promise 的写法
(new Promise(step1))
.then(step2)
.then(step3)
.then(step4);
async/await语法可以让异步处理写的跟同步一样。
let response = await fetch('/article/promise-chaining/user.json');
console.log(response);
如果没加await,console.log(response)
一定为空。如果加await,会等待结果出来之后再进行下一步。