记一次面试记录

如下都是这次面试问题的我的理解,仅供参考,欢迎指正,共勉。

  1. js中有哪些数据类型,它们在内存中得存在形式?
    基本类型存储在空间里面:string/number/boolean/undefind/null
    引用类型存在空间里面:object/array
  2. 移动端点击时有延时吗?延时多长时间?是什么缘由形成的?有什么改进方法?
    移动端点击时有200~300ms的延时,是由于移动端会有一些默认行为,好比双击缩放、双击滚动等行为,尤为是双击缩放,是为桌面网站在移动端的浏览体验设计的,而在用户点击时,浏览器会优先判断用户是否要触发默认行为。
    方案一:禁用缩放(会影响功能不建议)
    <meta name="viewport" content="user-scalable=no">
    <meta name="viewport" content="initial-scale=1,maximum-scale=1">
    方案二:更改默认的视口宽度
    它没有彻底禁用缩放,而只是禁用了浏览器默认的双击缩放行为,但用户仍然能够经过双指缩放操做来缩放页面。
    <meta name="viewport" content="width=device-width">
    方案三:使用FastClick等比较成熟的外部插件
    FastClickFT Labs 专门为解决移动端浏览器 300 毫秒点击延迟问题所开发的一个轻量级的库。
    FastClick的实现原理是在检测到touchend事件的时候,会经过DOM自定义事件当即出发模拟一个click事件,并把浏览器在300ms以后的click事件阻止掉。
  3. 移动端点击一下页面触发的事件顺序?
    事件的执行顺序会受触摸的力度和长短,还有是否移动有关。
    通常执行顺序为:
    touchstart => touchmove => touchend => touchcancel(通常不会执行) => click
  4. 做用域链有了解吗?
    JavaScript的变量都是对象的属性,而该对象可能又是其它对象的属性,而全部的对象都是全局对象的属性,因此这些对象的关系能够看做是一条链,
    链头就是变量所处的对象,链尾就是全局对象
  5. 闭包有了解吗?通常使用场景?
    闭包是函数和声明该函数的词法环境的组合。
    一般使用只有一个方法的对象的地方,均可以使用闭包。
    详细解释起来太长,网上有不少种解释,均可以参考,这里是MDN对闭包的专业解释。
  6. 设计模式当中的单例模式了解吗?
    单例模式也称为单子模式或单体模式,规则是保证一个类仅有一个实例,并提供一个访问它的全局访问点。
    《JavaScript高级程序设计》中也称之为对象字面量模式。
    如下为代码示例:
    //单例模式抽象,分离建立对象的函数和判断对象是否已经建立
        var getSingle = function (fn) {
            var result;
            return function () {
                return result || ( result = fn.apply(this, arguments) );
            }
        };
  7. 发起一个ajax请求的流程是怎样的。
    一、建立XMLHttpRequestd对象实例
    二、链接服务器
    三、向服务器发送请求
    四、接受服务器的返回
  8. 在浏览器中输入一段url地址会发生什么?
    一、浏览器解析
    二、查询缓存
    三、DNS查询
    四、创建连接
    五、发送HTTP请求
    六、服务器发送响应
    七、客户端收到页面
    八、解析HTML
    九、构建渲染树
    十、浏览器布局渲染
  9. http与https的区别?
    一、http 的URL 以http:// 开头,https以https:// 开头。
    二、http 标准端口是80 ,https是443。
    三、https 协议须要到ca申请证书,http不须要。
    四、http 是超文本传输协议,信息是明文传输,https 则是具备安全性的ssl加密传输协议。
    五、http 的链接很简单,是无状态的,https协议是由SSL+http协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。
  10. ES6中得箭头函数新特性是什么?
    一、对 this 的关联
    二、new 不可用
    三、this 不可变
    四、没有arguments对象
    五、等等

其余

  1. 移动端有哪些性能方面的优化? 网络/资源/渲染/脚本 优化等
  2. dns是什么?百科 - DNS
  3. vue的生命周期都有哪些?
  4. git有使用过吗?git的版本管理了解吗?
  5. app用户输入帐号密码,先后端的验证流程是怎样的?
  6. 为何想换工做呢,离职的缘由是什么?

大概就这些吧,中间还有其余问题,记不太清了。vue