面试题

作者: 大仙爷 | 来源:发表于2023-04-10 16:21 被阅读0次

一、(单项选择)下面程序的执行结果是

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);

执行上面的代码array1array2的值分别是什么?

  • 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'
    }
}
  1. 使用函数库
  2. 使用递归方式自己实现

答案 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

答案A


八、div水平垂直居中的方法

答案:1:父元素相对定位 position:relative;

子元素position:absolute;left:50%;top:50%;transform:(-50%.-50%);

2:父元素display:flex;align-items:center;justify-content:center;


八、响应式布局的实现方式有哪些

答案:1:百分比布局;2:媒体查询布局;3:rem布局;4:flex弹性布局。


九、网页请求数据时跨域的解决方案

1:设置相同域名,相同http协议;2:vue的地址代理;


十、HTTP 与 HTTPS 区别

答案:1:https协议需要到ca申请证书,会产生费用;2:http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议;

3:http和https的连接方式不一样,所用端口也不同,前者是80端口,后者是443端口;4:http的连接很简单,是无状态的,https是由ssl+http协议构建

的可进行加密传输、身份认证的网络协议。

相关文章

  • 面试材料

    面试经验 面试题1 面试题2 面试题3 面试题4 面试题5 面试题6――数据结构 面试题7――网络 面试题8――汇...

  • 高阶面试题

    webpack面试题 面试题:webpack插件 Git面试题 面试题:git常用命令 面试题:解决冲突 面试题:...

  • this的指向的面试题

    面试题1 面试题2 面试题3 面试题4

  • 面试所涉及的问题

    面试题参考1 : 面试题 面试题参考2 : 内存管理 面试题参考3 :面试题 ...

  • Android超实用最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • Android最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • 2022年web前端面试题

    web前端面试题分为:html/css面试题、javascript面试题、vue面试题、性能优化面试题、网络方面面...

  • ios面试题

    初级面试题 中级面试题 高级面试题 swift篇

  • Android超实用最全面试大纲(四)

    文章目录: 冷启动和热启动面试题 其他优化面试题 架构模式面试题 插件化面试题 热更新面试题 进程保活面试题 Li...

  • Android最全面试大纲(四)

    文章目录: 冷启动和热启动面试题 其他优化面试题 架构模式面试题 插件化面试题 热更新面试题 进程保活面试题 Li...

网友评论

      本文标题:面试题

      本文链接:https://www.haomeiwen.com/subject/wcnqlktx.html