web前端面试-- 面试被问懵逼了,记录一下~~~

今天面试web前端开发岗位,哎,基础太差了,记录一下。

岗位要求

web前端面试-- 面试被问懵逼了,记录一下~~~_第1张图片


web前端面试-- 面试被问懵逼了,记录一下~~~_第2张图片

答的不好的

1. forEach、for in、for of三类循环原理和性能

打不出来,这个只能说出区别,比如for in 可以遍历不可枚举的属性。
答案

2. 3个box,要求横向排列,以及竖向排列

这边答了:flex布局,使用flex-direction。以及修改其display属性。
面试官说回答有问题。
冷静下来,发现还有浮动float,不过应该不只是浮动。
不过加上,估计面试官也不是很满意了。

3. v-model 与 prop.sync 的区别

总结功能作用场景:

  1. v-model针对更多的是最终操作结果,是双向绑定的结果,是value,是一种change操作。
    比如:输入框的值、多选框的value值列表、树结构最终绑定的id值列表(ant design和element都是)、等等…
  2. sync针对更多的是各种各样的状态,是状态的互相传递,是status,是一种update操作。
    比如:组件loading状态、子菜单和树结构展开列表(状态的一种)、某个表单组件内部验证状态、等等…

答案

4. typescirpt 的!

let a!:any; 这个!有什么用

非空断言

在 TypeScript 中,有时为了方便开发,需要跳过某些变量值为空时的校验。这时可以使用非空断言,即在变量名后面加上感叹号表示该变量不会为 null 或undefined示例:
总之,感叹号语法在 TypeScript 中起到了很重要的作用,可以提高代码的简洁性和开发效率。但也需要注意,过度使用感叹号语法可能会导致代码可读性降低和错误的引入。

5. Object 与 objcet有什么区别

这个对出来了~
Object,是JS关键字,是内置对象,是所有对象的基类。
下面这个,就很尴尬了哈哈…

let obj = {};
typeof obj;  // 'object' 是一个类型...

看控制台

web前端面试-- 面试被问懵逼了,记录一下~~~_第3张图片

6. 0.2+0.3=0.5?

只答得出来浮点运算之类的问题,说只记得0.1+0.2!=0.3~

web前端面试-- 面试被问懵逼了,记录一下~~~_第4张图片
面试官,说这个是用什么协议标准之类的?
后来知道是IEEE754标准。

这两个数的二进制都是无限循环的数。JavaScript使用Number类型表示数字(整数和浮点数),它的实现遵循IEEE754标准,在 IEEE754 标准中常见的浮点数数值表示有:单精准度(32位)和双精准度(64位),而JS采用的是双精度版本,也就是通过64位来表示一个数字;在二进制科学表示法中,双精度浮点数的小数部分最多只能保留52位,再加上前面的1,其实就是保留53位有效数字,剩余的舍去,遵从“0舍1入”的原则。根据这个原则,0.1和0.2的二进制数相加,再转化为十进制数就是:0.30000000000000004。

答案出处

7. tcp,udp,http的关系

这边答了一点,面试官补充,头部字节数,这边大学的知识,也忘记的差不多了,隐约记得有个20字节跟8字节。然后就有人找面试官,等面试官忙完后,好像就没有然后了…

其他问题

这里觉得还可以了,起码没说不知道 ~. ~!!!

  1. 讲讲webpack打包,以及怎么将整个项目打包成一个文件,怎么实现懒加载。
  2. 简历写了docker-compose,就聊了一下docker各个容器,以及映射关系,然后再提到不同服务器要怎么映射(没有项目经验,我只是在一个服务器上运行)。
  3. 单例模式
  4. eventloop
  5. vuex模块化

你可能感兴趣的:(前端面试题,面试,web前端面试)