今日刷题-变量的回收和reduce的使用
题目1
1 | 以下哪些表达式的值为0?(多选) |
答案
- A,B,C,D
解析
A: 获取的是形参的个数(不是实参)
1
2
3
4
5如果是((a)=> {}).length,形参有一个所以函数的length为1 ;
如果是((a,b)=> {}).length,形参有两个所以函数的length为2
假如:function aaa(){}
aaa(1,2);
console.log(aaa.length) ;//值为0,因为形参个数是0,所以函数的length为0B:
&
与运算, (二进制下)二者都是1最终结果才为1,否则就为01
2
31的二进制表示 0001
2的二进制表示 0010
1&2结果是 0000 ,转成10进制也就是0C: +[ ] 隐式类型转换。 +会让 [ ] 隐式转换成Number,转换过程如下
1
因为 [ ] 是对象,所以 toPrimitive->valueOf->toString为 '' ,Number('')得0
D: reduce用于求和
1
2
3
4
5
6
7// 代码简写
[1,2,-3].reduce((a, b) => a - b, 0)
// 代码详细
[1,2,-3].reduce((prev, cur)=>{
return a-b;
},0)reduce的使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14【功能】: 求和
【参数】: callback参数
1. total(若为赋值,则默认为0)
2. currentItem
3. currentIndex
4. arr(数组所属数组对象)
【返回值】:根据callback的返回值决定total的值
【示例】:
var sum = result.reduce(function(prev, cur) {
console.log(prev) // 0
console.log(cur) // {name:'小明',score:88}
return cur.score + prev;
}, 0);
console.log('总数是' + sum)
题目2
1 | 下列代码存在几个变量没有被回收?( ) |
答案
- D
解析
不会被回收的
- 全局变量
i
不会被回收 - 全局变量
add
不会被回收 - 闭包引用的局部变量
i
不会被回收
1
2
3
4
5
6
7
8
9
10
11
12
13
14var i = 1;
var i = 2; //二个var ,一个被覆盖了,没有新建,只是覆盖,因此只有一个全局变量i不会被回收
// add 也是全局变量,不回收
var add = function() {
// var 是函数作用域
var i = 0;
return function()
{
//闭包保持引用,因此这个也不会被回收
i++;
console.log(i);
}
}();- 全局变量
题目3
1 | 以下代码执行后,array的结果是? |
答案
- C
解析
(a,b)=>Math.abs(a-3)-Math.abs(b-3);
箭头函数表示:当Math.abs(a-3)>Math.abs(b-3)时,a放在b后面,Math.abs(a-3)<Math.abs(b-3)时,不交换位置,也就是说数组中的每一项减去3的绝对值越大越靠后。这里主要考的是对sort()方法的掌握.
我个人也不是很懂,只知道 array.sort((a,b)=>a-b)是升序 array.sort((a,b)=>b-a)是降序
获取这个是一个技巧吧,真正理解sort还是挺复杂的
- 先将数组每一个值
-3
再取绝对值,然后得[4,2,0,1,3,7]
- [4,2,0,1,3,7] 依次对应数组 [-1,1,3,4,6,10]
- 又因为是 Math.abs(a-3) - Math.abs(b-3);所以数组中的每一项减去3的绝对值越大越靠后,排序后的为[0,1,2,3,4,7],所以最终结果就为**[3,4,1,6,-1,10]**
- 先将数组每一个值
题目4
1 | el是一个id="id1"的div元素,以下哪行代码会执行失败 |
- 答案
- B
- 解析
- A: className 属性设置或返回元素的 class 属性。获取属性值:HTMLElementObject.className;设置属性值:HTMLElementObject.className=classname
- B: tagName属性返回元素的标签名。HTML 返回 tagName 属性的值是大写的比如div标签返回tagName为 DIV
- C: innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML。HTMLElementObject.innerHTML=text
- id 属性设置或者返回元素的 id。HTMLElementObject.id=id
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梦洁小站-属于你我的小天地!
评论