demo 1
var FACTORY = function(){
this.a = 'a';
this.b = 'b';
this.c = {
a:'a+',
b:()=>this.a
}
}
console.log(new FACTORY().c.b());
运行结果 为 a
demo 2
var a;
if(a){
let a = 20;
}else{
let a = 30;
}
console.log(a);
运行结果为 : undefined
因为{}是代码块,出了这个快,快内的变量将不再存在,所以var a 并没有谁真的给他赋值。
另一个问题,if的判定我认为走的是else ,因为 觉得undefined 应该不是真值
demo 3
let data = [5,10,15,20];
let rs = data
.map(value => value*2)
.filter(value => value >= 20)
.reduce((a,b) => a+b);
console.log(rs);
运行结果为 : 90
为什么捏???
value * 2 数组 变成 [ 10, 20 ,30 ,40 ]
再 》=20 过滤了一下
于是 大于等于20的 便是 20,30,40
最后 一步 我认为 他们在计算求和
所以 20 加 30 加 40 便等于90!!!
所以 dingo 答对了 ~~~ 笔芯!!!
【人在学海,身不由己】