在这里记录下面试碰到的以及可能碰到的题目,用于复习巩固,查漏补缺。
HTML
HTML语义化
根据内容的结构,选择合适的标签
- 方便代码的阅读和维护,在没有CSS的情况下也能呈现较好的内容结构
- 有利于SEO,让浏览器或是网络爬虫可以很好的解析,从而更好的分析其中的内容
- 使用语义化标签会具有更好的搜索引擎优化
CSS
BFC
https://juejin.im/post/6844903495108132877
JavaScript
严格模式的作用
"use strict";
使代码脱离稀松模式(sloppy),对JavaScript语义做了一些更改:
- 通过抛出错误来消除了一些原有静默错误,变量必须先声明在使用,禁用with等
- 消除了代码运行的一些不安全之处,保证代码运行的安全,禁用delete删除变量
- 提高编译器效率,增加运行速度
- 禁用了在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高级程序设计
优点:
- 逻辑连续,当闭包作为另一个函数调用的参数时,避免你脱离当前逻辑而单独编写额外逻辑
- 方便调用上下文的局部变量
- 加强封装性,第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
其它
网页从输入网址到渲染完成经历了哪些过程
- 输入网址;
- 发送到DNS服务器,并获取域名对应的web服务器对应的ip地址;
- 与web服务器建立TCP连接;
- 浏览器向web服务器发送http请求;
- web服务器响应请求,并返回指定url的数据(或错误信息,或重定向的新的url地址);
- 浏览器下载web服务器返回的数据及解析html源文件;
- 生成DOM树,解析css和js,渲染页面,直至显示完成;
ajax请求的过程
- 创建XMLHttpRequest对象
- 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息
- 设置响应HTTP请求状态变化的函数,发送HTTP请求
- 获取异步调用返回的数据
- 使用JavaScript和DOM实现局部刷新
参考
https://zhuanlan.zhihu.com/p/60832562
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!