发表于: 2021-10-16 22:17:40
0 1074
今天完成的事情:学习了变量和函数提升,作用域。试写方法数组去重。
明天计划的事情:尝试理解闭包
遇到问题:
a(10) ==> 调用a方法,return get方法 ==> 调用get方法,此时的this指向的是window,所以get方法中的x应该是20,所以console返回的结果应该是30.
此题略坑,结果应该是undefined 和报错。
W3C用 let 或 const 声明的变量和常量不会被提升!
通过 var 声明的变量有初始值 undefined,而通过 let 声明的变量直到定义的代码被执行时才会初始化。在变量初始化前访问变量会导致 ReferenceError
所以执行到第二个console.log(b)时候,因为b未被申明,所以应该报错(实际设计器中会报 Cannot access 'b' before initialization),到这边代码不会继续执行
收获:尝试在原型链上写数组去重的方法:
原理是利用对象的属性值不可重复的特性,将不重复的属性名push进新的数组。
通过baidu查询得到数组去重的其他方法:https://www.cnblogs.com/zsp-1064239893/p/11196501.html 以供以后查询
评论