第一題
第一題我做錯了以爲是選錯誤的
第二題
第三題
解: 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 :未經授權,不得轉載
有問題的小夥伴請在下方留言,喜歡就點個贊吧