第一题
第一题我做错了以为是选错误的
第二题
第三题
解: JS中的执行机制(setTimeout、setInterval、promise、宏任务、微任务),非定时器优先执行,定时器靠后执行。
第四题
使用 new 操作符时,构造函数内的 this 就指向相应的实例化对象;
未使用 new 操作符时,为普通函数调用,全局函数内的 this 指向 window;
所以语句 var a = Person('Tom')
为普通函数调用,全局的 name 会改成 Tom。
第五题
第六题
.parent {
height: 600px;
width: 600px;
background-color: #E64A19;
display: flex;
}
.son {
height: 200px;
width: 200px;
background-color: #1976D2;
margin: auto;
}
<div class="parent">
<div class="son"></div>
</div>
第七题
function paddingNum(num) {
let flag = num > 0 ? true : false;
const numArr = Math.abs(num).toString().split('.');
let right = numArr[1] === undefined ? '' : '.' + numArr[1];
let leftArr = numArr[0].split('');
let res = [];
for (let i = leftArr.length - 1, count = 0; i >= 0; i--, count++) {
if (count % 3 === 0 && i != leftArr.length - 1) res.unshift(',');
res.unshift(leftArr[i]);
}
return flag ? res.join('') + right : '-' + res.join('') + right;
}
console.log(paddingNum(-12345678.789)); // -12,345,678.789
第八题
a. forEach
不能使用 continue
,但是可以用 return true
来代替 continue
;
b. forEach
不能使用 break
,但是可以用 return false
来代替 break
;
c. 对象数组与 Map 互转-博客园引用;
d. JS 中的 Map 与 Set - 博客引用。
function dupicatedWord(arr) {
let map = new Map();
arr.forEach(val => {
map.has(val) ? map.set(val, true) : map.set(val, false);
});
let obj = {};
for (let [k, v] of map) {
obj[k] = v;
}
return obj;
}
console.log(dupicatedWord([1, 2, 3, 4, 2, 3, 4, 3, 4, 4])); // {1: false, 2: true, 3: true, 4: true}
第九题
function fun(str) {
let arr = str.split('');
let res = [];
let flag = false;
arr.forEach(val => {
if (val == '(') {
flag = true;
return true;
}
if (flag) {
if (val == ')') {
flag = false;
}
return true;
}
if (val == '<') {
res.pop();
} else {
res.push(val);
}
});
return res.join('');
}
console.log(fun('Corona(Trump)USA<<<Virus')); // CoronaVirus
感谢观看 期待关注
关注我,带你一起写bug
warning :未经授权,不得转载
有问题的小伙伴请在下方留言,喜欢就点个赞吧