博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次失败的面试(1)
阅读量:5848 次
发布时间:2019-06-19

本文共 2221 字,大约阅读时间需要 7 分钟。

寒冬中的面试果然没那么简单,其实最主要的还是自身能力的不足,今天的面试属实收(da)获(ji)很大。学习技术不能浅尝辄止停留在api的使用,最主要的是要掌握原理,这样才能更好的理解与使用,对自身以后的发展也很重要。

进入正题,首先是笔试题:

1.inline和block元素有哪些?它们的区别是什么?

2.请写出以下代码的打印值

var scope = 'global'function log() {      var args = Array.prototype.join.call(arguments, '')      console.log(this.scope + ':' + args)}var dog = {      scope: 'dog',      yelp: function() {            var sope = 'dog.yelp'         log('wow')     }}dog.yelp() // global:wowdog.yelp.call(dog) // global:wowlog.call(dog, 'ceeated') //dog:ceeated复制代码

这道题考察的是this的指向问题,普通函数的this在函数执行的时候才能确定,谁调用就指向谁(大致就是这意思^_^)

3.请解释元素fixed、absolute、relative、static的区别

4.HTTP中200、404、500分别代表什么意思?304、403呢?

5.把字符串'abcde'处理成'edbca'

6.请用promise改写一下代码

$(document).ready(function() {    $.get('/get/user/info', function(result) {        $.get('/get/city?city='+result.user.city, function(city) {            // do sth        })    })})==>function fetch(url) {    return new Promise((resolve, reject) => {        $.get(url, function(res) {            resolve(res)        },        function(err) {            reject(err)        })    })}async function getInfo() {    let result = await fetch('/get/user/info')    fetch(`//get/city?city=${result.user.city}`).then(res => {        do sth    })}getInfo()复制代码

7.如何实现add函数?得出一下结果

add(2, 5)  // 7   add(2)(5) //7function add(...rest) {       if(rest.length > 1) {            return rest[0] + rest[1]       } else {            return function(sec) {                return rest[0] + sec            }       }}复制代码

下面的面试问题才是让我尴尬的点,不怕大家笑话,我回答的很差/(ㄒoㄒ)/~~

1.介绍一下vue中的vdom,与真实dom的关系,是如何映射到真实dom的?

2.项目中是如何进行优化的?减少首页的加载速度

我回答了一些常规操作,包括使用雪碧图。

面试官:为什么使用雪碧图?

我:可以减少http请求

面试官:为什么减少http请求可以优化首页的加载速度?如果合并的雪碧图太大那岂不是加载的更慢?

我:...

3.执行map函数时,dom被更新的多少次?

{
{timer}}
// scriptdata() { return { timer: 2 }},methods: { map() { for(let i=0;i<1000,i++){ this.timer = i } }}复制代码

4.重绘、回流

5.有个计算量很大的操作(执行时间3s)请问如何优化?(大概是这样)

面试官给出的答案:

     1.web worker

     2.分步骤执行

6.手写防抖函数

function debounce() {    let timer    return function() {        clearInterval(timer)        timer = setInterval(() => {            //  do sth        },1000)    }}复制代码

大家可以在评论区留下答案,让我学习一下骚操作

转载于:https://juejin.im/post/5c8f9db26fb9a070b96f00e3

你可能感兴趣的文章
ios tableheaderview layoutifneeded使用
查看>>
设计模式学习(六) 代理模式
查看>>
Consumer VS Producer
查看>>
A股分红送股历史数据查询Web API使用方法
查看>>
二、流的分类
查看>>
清北学堂培训2019.4.30
查看>>
Mybatis
查看>>
Eclipse下python插件(pydev)的安装
查看>>
HDU1724 Ellipse
查看>>
jqplot的API
查看>>
【ASP.NET】基础补习之FileUpload
查看>>
Qt学习之路_11(简易多文档编辑器)
查看>>
路由表的读法(zz)
查看>>
Foundations of Machine Learning: The PAC Learning Framework(2)
查看>>
typedef的用法
查看>>
django相关命令
查看>>
Jquery Highcharts 参数配置说明
查看>>
C++编程新思维中的技巧
查看>>
adb ( Android Debug Bridge)
查看>>
sqlserver批量修改首字母为大写
查看>>