?? Nullish coalescing operator
为了避免变量为null或者undefined
例如:
number = number ?? 0
假如number存在,则赋值。要是number不存在或为null,则给number赋值0
上语等同于:
if(number == null){
number = 0
}
? Ternary Operator
避免子项不存在:
apple = forest.tree.apple
apple = forest?.tree?.apple
apple = tree.apple?.[0]
apple = tree.apple[0]
如果forest存在,再继续往下取其tree,如果tree存在,再往下取其apple,不会因为子项不存在报错。
forest.Pick()
forest.Pick?.()
避免function不存在。先检查function是否存在且是一个function,如果不存在则不继续,也不会报错。
? : Conditional check
condition ? value if true : value if false
如果条件成立,则执行冒号左边,否则执行右边
result = (1 > 2) ? true : false
// false
赋值简写
const name = "duke"
const hobby = "paint"
const duke = {
name = name,
hobby = hobby
}
可简化成:
const name = "duke"
const hobby = "paint"
const duke = {
name,
hobby
}
defer 延迟加载
<head>
<script src="scripts.js" defer>
</head>
当script标记带有“defer”参数时,即便是在头部,也会等待整个html加载完之后再执行(但会提前下载)。
script的下载提前了,有助于提高加载速度。
Console log 样式
console.log(
`%c${name} in %c${address}`,
"font-weight:bold;font-size:5px",
"color:red"
)
%c
作为分隔,按顺序参数对应分割后的各个段。
#Javascript
引用关闭,但你能.