记一次面试记录

以下都是此次面试问题的个人理解,仅供参考,欢迎指正,共勉。

  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请求的流程是怎样的。
    1、创建XMLHttpRequestd对象实例
    2、连接服务器
    3、向服务器发送请求
    4、接受服务器的返回
  8. 在浏览器中输入一段url地址会发生什么?
    1、浏览器解析
    2、查询缓存
    3、DNS查询
    4、建立链接
    5、发送HTTP请求
    6、服务器发送响应
    7、客户端收到页面
    8、解析HTML
    9、构建渲染树
    10、浏览器布局渲染
  9. http与https的区别?
    1、http 的URL 以http:// 开头,https以https:// 开头。
    2、http 标准端口是80 ,https是443。
    3、https 协议需要到ca申请证书,http不需要。
    4、http 是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
    5、http 的连接很简单,是无状态的,https协议是由SSL+http协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。
  10. ES6中得箭头函数新特性是什么?
    1、对 this 的关联
    2、new 不可用
    3、this 不可变
    4、没有arguments对象
    5、等等

其他

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值