为了账号安全,请及时绑定邮箱和手机立即绑定

面试随笔

标签:
面试

面试准备

  1. 实现左中右三栏布局,左右固定宽度,中间自适应

    • 浮动—float
    • 定位—position
    • 弹性盒子布局—flex
    • 表格布局—table
  2. var、 let、 const的区别
    var会声明一个全局变量,编译过程中会存在变量提升,var可以重复声明同一个变量。
    let和const不存在变量提升,会产生暂时性死区,在每个代码块中同一个变量只能声明一次。
    const只能声明一个常量。

    区别:
    • 变量提升
    • 暂时性死区
    • 块级作用域
    • 重复声明
    • 修改声明的变量
  3. this指向问题

        var length = 10;
        function fn (){
            console.log( this );
            return this.length +  1;
    
        }
        var obj = {
            length : 5,
            test1: function() {
                console.log(this)
                return fn();
            }
        };
        obj.test2 = fn;
        console.log(obj.test1())
        console.log(obj.test2())
        console.log(fn() === obj.test2())
    
    
  4. 怎么判断一个空对象

*  for ... in ...
*  Object.keys() 
*  JSON.stringfy()
  1. == 与 === 区别
    • ===:严格相等
    • ==:宽松相等
      NAN不等于NAN
      ==在比较两个不同的类型的值的时候会发生隐式强制转换,会将 其中的一或两个值变为同一种类型而进行比较
      在 == 中null和undefined相等,他们自身也与其自身相等,除此之外其他值都不和他们想等

   在操作符中,==,排序运算符,加减乘除,在对非原始值进行操作时,都会调用内部的toPrimitive()方法
   
   如果{}既可以被认为是代码块,又可以被认为是对象字面量,那么js会把他当做代码块来看待。
   所以  [] + {}  = [object Object] ,  
   {}+[] = 代码块 + []  = + []  = 0 调用toNumber方法。

   ToPrimitive中的valueOf()方法返回里面的值进行比较
   toPrimitive(input,preferedType?)
   input是输入的值,preferedType是期望转换的类型,他可以是字符串,也可以是数字。    
   如果转换的类型是number,会执行以下步骤:     
   1. 如果input是原始值,直接返回这个值;     
   2. 否则,如果input是对象,调用input.valueOf(),如果结果是原始值,返回结果;     
   3. 否则,调用input.toString()。如果结果是原始值,返回结果;     
   4. 否则,抛出错误。     
   5. 如果转换的类型是String,2和3会交换执行,即先执行toString()方法。    
   6. 你也可以省略preferedType,此时,日期会被认为是字符串,而其他的值会被当做Number。

  1. 箭头函数和普通函数
    • 箭头函数是匿名函数,不能作为构造函数,不能使用new
    • 箭头函数不绑定arguments,取而代之用rest参数…解决
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
0
获赞与收藏
5

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消