1.1 基础
- 三元运算
v1 = 条件 ? 值A : 值B;
res = 1 === 1 ? 99 : 88;
console.log(res); // 99
- 赋值和比较
v1 = 11 === (n=123) //n赋值
console.log(n); // 123
console.log(v1); // false
- 逻辑运算
v1 = true || true
//数值
v2 = 9 || 14 # v2=9
v3 = 0 || 15 # v3=15
最终结果取决那个值?结果就是那个值。
=============================================================
**案例**
(1)
v1 = 11 || 22 ? 33 : 44
v1 = 11 ? 33 : 44
v1 = 33
(2)
v1 = 22 ? 33 : 44 || 55
v1 = 33
(3)
var o = (null === (n = window.byted_acrawler) || void 0 === n ? void 0 : null === (a = n.sign) || void 0 === a ? void 0 : a.call(n, i)) || "";
n = window.byted_acrawler -> 确定不为空
a = window.byted_acrawler.sign -> 确定不为空
window.byted_acrawler.sign.call(n, i) -> 确定不为空
===》》》var o = window.byted_acrawler.sign.call(n, i)
1.2 函数
- 执行函数
function sign(v1){
// this
console.log(v1);
}
- sign(123) // 执行,函数内部this=window
- sign.call(123,456)// 执行,函数内部 this=123
// n就会传递给call函数中this
// i当做参数传递
var o = window.byted_acrawler.sign.call(n,i)
var o = window.byted_acrawler.sign(i)
- 函数的参数
function sign(){
console.log(arguments)
}
sign()
sign(11,22,33)//参数全部放在arguments中
sign(11,22,44,55)
1.3 其他
ES5,语法100
ES6,语法100 + 50
v1 = { k1: 123 }
v2 = { k2:99, k3:888}
Object.assign(v1, v2)
console.log(v1) # {k1: 123, k2:99, k3:888 }
属性从一个或多个源对象复制到目标对象,返回修改后的对象。。