在这里记录下面试碰到的以及可能碰到的题目,用于复习巩固,查漏补缺。

HTML

HTML语义化

根据内容的结构,选择合适的标签

  1. 方便代码的阅读和维护,在没有CSS的情况下也能呈现较好的内容结构
  2. 有利于SEO,让浏览器或是网络爬虫可以很好的解析,从而更好的分析其中的内容
  3. 使用语义化标签会具有更好的搜索引擎优化

CSS

BFC

https://juejin.im/post/6844903495108132877

JavaScript

严格模式的作用

"use strict"; 使代码脱离稀松模式(sloppy),对JavaScript语义做了一些更改:

  1. 通过抛出错误来消除了一些原有静默错误,变量必须先声明在使用,禁用with等
  2. 消除了代码运行的一些不安全之处,保证代码运行的安全,禁用delete删除变量
  3. 提高编译器效率,增加运行速度
  4. 禁用了在ECMAScript的未来版本中可能会定义的一些语法

全局作用域函数中this指向undefined,而不是window

详见

JS的基本数据类型

  • 基本类型:String、Number、Boolean、Symbol、Undefined、Null、(BigInt)
  • 引用类型:Object

JS有哪些内置对象

  • Math对象:Math.abs(x); //用来返回数的绝对值
  • Date对象:var date = new Date();// 通过new的方式创建一个日期对象
  • Array对象:var arr=new Array()
  • 字符串对象:var str=new String()

JS的类型转换

变量的类型转换分为两种,主动进行的是显示类型转换,另一种为隐式类型转换

详见

underfined和null的区别

null表示”没有对象”,即该处不应该有值

undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义

undefined == null
// true
Number(null)
// 0
5 + null
// 5
Number(undefined)
// NaN
5 + undefined
// NaN

详见

== 与 === 的区别

== 两边值类型不同的时候,要先进行类型转换,再比较

=== 不做类型转换,类型不同的一定不等

闭包

函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起构成闭包closure)。闭包可以让你从内部函数访问外部函数作用域。在 JavaScript 中,每当函数被创建,就会在函数生成时生成闭包。可以简单理解为“定义在一个函数内部的函数“ MDN

闭包指有权访问另一个函数作用域变量的函数。 —JavaScript高级程序设计

优点:

  1. 逻辑连续,当闭包作为另一个函数调用的参数时,避免你脱离当前逻辑而单独编写额外逻辑
  2. 方便调用上下文的局部变量
  3. 加强封装性,第2点的延伸,可以达到对变量的保护作用

缺点:

闭包有一个非常严重的问题,那就是内存浪费问题,这个内存浪费不仅仅因为它常驻内存,更重要的是,对闭包的使用不当会造成无效内存的产生

this指向

JavaScript中apply、call和bind的区别

防抖与节流,写一个防抖函数

promise,实现一个promiseAll

Vue

如何理解mvvm原理

Model-View-ViewModel

Model 指模型数据,泛指后端进行的各种业务逻辑处理与数据操控

View 指视图层,即用户界面

ViewModel 由前端开发人员组织生成和维护的视图数据层,是连接view和model的桥梁,将后端获取的Model数据进行转换处理,以生成View层使用预期的视图数据模型。View层和Model层并没有直接联系,而是通过ViewModel层进行交互。 ViewModel层通过双向数据绑定将View层和Model层连接了起来,使得View层和Model层的同步工作完全是自动的。

响应式数据的原理

https://cn.vuejs.org/v2/guide/reactivity.html

Vue中如何检测数组变化

https://cloud.tencent.com/developer/article/1607061

为什么Vue中使用异步更新队列

https://github.com/berwin/Blog/issues/22

数据结构与算法

数据结构与算法

常用数据结构与使用场景

排序算法有哪些,实现一个

计算机网络

content类型

https

其它

网页从输入网址到渲染完成经历了哪些过程

  1. 输入网址;
  2. 发送到DNS服务器,并获取域名对应的web服务器对应的ip地址;
  3. 与web服务器建立TCP连接;
  4. 浏览器向web服务器发送http请求;
  5. web服务器响应请求,并返回指定url的数据(或错误信息,或重定向的新的url地址);
  6. 浏览器下载web服务器返回的数据及解析html源文件;
  7. 生成DOM树,解析css和js,渲染页面,直至显示完成;

ajax请求的过程

  1. 创建XMLHttpRequest对象
  2. 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息
  3. 设置响应HTTP请求状态变化的函数,发送HTTP请求
  4. 获取异步调用返回的数据
  5. 使用JavaScript和DOM实现局部刷新

参考

https://zhuanlan.zhihu.com/p/60832562

https://developer.mozilla.org/

https://juejin.im/post/6844903950500495373


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

Vue项目搭建 上一篇
ECharts动态更新数据与dataZoom的问题 下一篇