那是我夕阳下的奔跑(一)

栏目: JavaScript · 发布时间: 5年前

内容简介:1、用promise,async/awit实现图片懒加载2、实现一个函数使:3、一个素组的范围[K, N-2 + K ],现在出现了两个重复的,找出重复项

笔试题

1、用promise,async/awit实现图片懒加载

loadImg(src).then();
loadImg([src1,src2]).then();

2、实现一个函数使:

a(1,2)(3)(5); // 得到11
a(1)(3,4)(8)(3,4); // 得到参数和
/**
 * 这题考察的是函数的柯里化
 * /

3、一个素组的范围[K, N-2 + K ],现在出现了两个重复的,找出重复项

/**
 * 这个就是纯粹的算法,我用了array的方法(肯定不是出题者的本意)-_-...平时确实没有练这块
 * /

4、依次写出打印值

(function () {
  new Promise((resolve, reject) => {
    console.log('promise1')
    resolve()
  }).then(resolve => {
    console.log(2)
    new Promise(resolve => {
      console.log(4)
      resolve()
    }).then(resove => {
      console.log(5)
    })
  }).then(resolve => {
    console.log(3)
    resolve()
  })
})()
/**
 * 我的答案是1.2.3.4.5的顺序,这题考察了event loop,微任务里面的微任务执行时机问题
 * /

5、写出结果

var a = 'hei hei'
(function() {
  if (typeof a === 'undefind') {
    var a = 'bigo'
    console.log(a)
  } else {
    console.log(a)
  }
})()
/**
 * 这题考察了执行上下文的问题,我的答案是'bigo'
 * /

6、将如下字符串转为json对象

let str = '{name: "zhang";"tel": 123456789}'

/**
 * 这个写我写了个正则,将(name):(zhang)这种东西搂出来,然后用replace($, $1, $2)遍历生成一个json
 * /

7、用正则验证一个图片地址

let src = 'https://cdn.test.iamge.com/image.png'
/**
 * src具体啥样的忘记了,反正就是要考虑协议(http、https),域名(www.xxx.com),图片后缀(jpg、png),写的时候感觉时间不多了,域名里的点没怎么考虑,好像直接用(*)梭哈了>_<
 * /

8、写出打印值

window.a = 'a';
b = 'b';
delete window.a
delete b
console.log(a, b)
/**
 * 我当时写了两个undefined....a肯定undefined了,b是不是后面验证下
 * /

9、一个关于Symbal的问题,具体忘记了,大概就是判断类型,搞清楚这两点就行了

typeof Symbal // function
typeof Symbal('a') // symbal
/**
 * 这里再跟面试官聊的时候,我记得基本数据类型里是没有'function'这货的,结果他打开chrome,确确实实输出了'function'.....
 * /

10、加一行代码时输出预期结果

var a = 'a', b = 'b';
// 写下你的代码
console.log(a.name, b.name) // a, b

笔试题就记得这些了

面试题

输入url到页面显示的过程

  • dns解析,拓展了一下它的应用dns负载均衡(cdn)
  • 根据tcp/ip/以太网协议,包是如何传到目标计算机(路由、广播、MAC地址),顺便说了下最近做h5支付的时候,后台代码和我的代码都在局域网内,结果后台拿的是内网ip地址而微信服务器拿的外网地址的原因
  • tcp连接过程的中的三次握手、慢开始、拥塞避免,一个应用开一个端口,保证包传输正确,拓展:http1.1(目前基本用的这个)最多建立6个tcp连接,管道机制(a、b、c三个请求依此发送,tcp会依此返回,不管哪个结果服务器先准备好),打开淘宝,我们可以看到来自不同域名的资源,就是优化这个tcp连接上限的。http2.2的多共通信,请求不必按顺序返回,准备一点,返回一点。寥寥无期
  • 解析html,生成dom数,如果遇到script会阻塞dom tree的生成,所以我们一般吧scrip放在最后,link标签加载完生成cssom数,渲染树,根据盒模型计算dom在屏幕中的位置,渲染上去
  • js的执行,说了一下执行上下文,event loop,js获取style执行队列清空,立刻重绘,等等

大概就是分成这些点在说,但是说的时候感觉自己表述的很乱,漏了很多

vue

  • v-if和v-show什么区别,vdom里面的表现形式如何
  • v-for里面的key的作用,vdom里面的表现形式使怎么样的,优化的过程是怎么样的
  • compute、watch、和method的区别
  • vue模板里面({{}})写全局变量会怎么样,写函数行不行,new语句行不行,templete里面的作用域是怎么样的
  • vue的父子组件传递数据的方式
  • vue的原理

postcss了解吗

写过一个postcss插件

babel这块原理

写过一个babel插件demo

http缓存说一下

  • 强缓存
  • 协商缓存
  • etag怎么生存成(大小文件)

从命令行输入npm run dev后,发生了什么?

首先读取webpack.config文件,找到script标签里的dev命令指向的文件,执行这个文件,....,webpack的enter文件入口文件,解析依赖关系...

理解很浅显,什么代码分割、插件、去重、压缩这些都没有说,就晓得个loader,babel倒是哔哩哔哩的说了一通+_+

webpack插件机制

es6里面的array、string方法说一下

就说了几个,array.from等等,没咋记

node里面两个文件里面互相引用会怎么样

我说在node这块对他的理解仅限于把它当作一个开发环境,然后就是使用koa写写接口掉下数据库,面试官就换了种方式问,两个文件里互相require会怎么样(大概是这个意思吧)?

es6的import是编译时加载,require时运行时加载,值就是个引用指针,import会转成require(webpack),所以是互相引用的关系,我看vue源码里面一堆相互引用,也没啥毛病,就说应该没问题吧。。。。

vuex原理是怎样的,让你实现会怎么做

vue-router的原理怎样的,hash模式和histroy模式怎在做

react

  • react和vue对比一下
  • react中props和state有什么区别,他们的更改触发的render函数的范围是怎么样的
  • 说一下react的生命周期,,凉凉,瞬间忘光光,只说了几个

Object.defineProperty和proxy的区别

目前有印象的就这些了


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

区块链:定义未来金融与经济新格局

区块链:定义未来金融与经济新格局

张健 / 机械工业出版社 / 2016-6-18 / 49.00

从构建价值互联网的角度看,区块链的出现意味着从0到1。正因如此,本书章节结构与常见的体例不同,从第0章开始。第0章从文字与货币的起源出发,通过论述人类信息传递和价值传输手段的进步,说明区块链技术诞生的必然性。第1章用深入浅出的语言讲解区块链的本质、运行原理、颠覆性潜力以及区块链技术的现状与未来;第2章宏观讲述了区块链技术带来的新产品和新机遇,包括数字货币、互联网金融、物联网,以及新一代的基础设施;......一起来看看 《区块链:定义未来金融与经济新格局》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具