一、(单项选择)下面程序的执行结果是
var name = 'World!';
(function () {
if (typeof name === 'undefined') {
var name = 'Jack';
console.log('Goodbye ' + name);
} else {
console.log('Hello ' + name);
}
})();
- A、Goodbye Jack
- B、Hello Jack
- C、Hello undefined
- D、Hello World
答案:A
二、(单项选择)
var array1 = [1,2];
var array2 = array1;
array1[0] = array2[1];
array2.push(3);
console.log(array1);
console.log(array2);
执行上面的代码array1
和array2
的值分别是什么?
- A、Array1的值为[2,2];Array2的值为[1,2,3]
- B、Array1的值为[2,2,3];Array2的值为[1,2,3]
- C、Array1的值为[2,2,3];Array2的值为[2,2,3]
- D、Array1的值为[1,2,3];Array2的值为[1,2,3]
答案:C
三、 实现一个简单数组排序算法
答案 function arrSort(arr){
const len = arr.length
if(len<2) return arr
for(let i = 0; i < len; i++){
for(let j = 0; j < len - i - 1;j++>){
if(arr[j]>arr[j + 1]){
const temp = arr[j]
arr[j] = arr[j + 1]
arr[j+1] = temp
}
}
}
return arr
}
四、 使用Array.sort方法对对象数组进行排序
如:
let arr = [{a: 1, b: 2}, {a: 2, b: 1}, {a: 1, b: 1}]
以a为升序,b降序排序
答案 arr.sort((a, b) => (a.a < b.a ? 1 : -1)).sort((a, b) => (a.b <b.b ? 1 : -1))
------
## 五、对一个对象进行深拷贝,两种实现方式都写
如:
```JavaScript
var obj = {
n1: 1,
arr1: [1, 2, 3],
f1: () => {
console.log('f1');
},
o1: {
s1: 'good luck'
}
}
- 使用函数库
- 使用递归方式自己实现
答案 function deepClone(obj){
const targetObj = obj.constructor === Array ? [] : {}; // 判断复制的目标是数组还是对象
for(let keys in obj){ // 遍历目标
if(obj.hasOwnProperty(keys)){
if(obj[keys] && typeof obj[keys] === 'object'){ // 如果值是对象,就递归一下
targetObj[keys] = obj[keys].constructor === Array ? [] : {};
targetObj[keys] = deepClone(obj[keys]);
}else{ // 如果不是,就直接赋值
targetObj[keys] = obj[keys];
}
}
}
return targetObj;
}
六、说说对Promise的理解
答案:在传统的异步编程中,如果异步之间存在依赖关系,我们就需要通过层层嵌套回调来满足这种依赖,
如果嵌套层数过多,可读性和可维护性都变得很差,产生所谓“回调地狱”,而Promise将回调嵌套改为链式调用,增加可读性和可维护性。
promise有三种状态pending 初始状态、fulfilled 成功状态、rejected 失败状态,状态一旦改变就不可逆。
七、CSS相关单选
<!DOCTYPE html>
<html><head><style>
div .con-span {
color: blue;
}
#con-id span {
color: red;
}
.con-div .con-span {
color: black;
}
div.con-div .con-span {
color: green;
}
</style></head>
<body>
<div class="con-div" id="con-id">
<span class="con-span">my color</span>
</div>
</body></html>
以上html中my color显示的颜色是什么:
- A、red
- B、blue
- C、black
- D、green
网友评论