面试题

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

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协议构建

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容

  • 1、FILE表示什么意思?(5分)文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP[htt...
    倔强的阿飞阅读 2,743评论 0 0
  • php常用数组函数 一,数组操作的基本函数 1. 数组的键名与值 array_values($arr); 获得...
    Amy1234567阅读 626评论 0 0
  • 2.什么是函数柯里化? 答:是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接...
    Rain_Wuu阅读 2,262评论 1 8
  • 1. JS创建变量的5种方式?varletconstfunctionexport/import 2. var,le...
    Angel_6c4e阅读 817评论 0 13
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,094评论 1 32