zoukankan      html  css  js  c++  java
  • 前端面试

    知识点汇总

    1.HTML

    • HTML5新特性,语义化

    • 浏览器的标准模式和怪异模式

    • xhtml和html的区别

    • 使用data-的好处

    • meta标签

    • canvas

    • HTML废弃的标签

    • IE6 bug,和一些定位写法

    • css js放置位置和原因

    • 什么是渐进式渲染

    • html模板语言

    • meta viewport原理-

    2.CSS

    • 盒模型,box-sizing

    • CSS3新特性,伪类,伪元素,锚伪类

    • CSS实现隐藏页面的方式

    • 如何实现水平居中和垂直居中。

    • 说说position,display

    • 请解释*{box-sizing:border-box;}的作用,并说明使用它的好处

    • 浮动元素引起的问题和解决办法?绝对定位和相对定位,元素浮动后的display值

    • link和@import引入css的区别

    • 解释一下css3的flexbox,以及适用场景

    • inline和inline-block的区别

    • 哪些是块级元素那些是行级元素,各有什么特点

    • grid布局

    • table布局的作用

    • 实现两栏布局有哪些方法?

    • css dpi

    • 你知道attribute和property的区别么

    • css布局问题?css实现三列布局怎么做?如果中间是自适应又怎么做?

    • 流式布局如何实现,响应式布局如何实现

    • 移动端布局方案

    • 实现三栏布局(圣杯布局,双飞翼布局,flex布局)

    • 清除浮动的原理

    • overflow:hidden有什么缺点?

    • padding百分比是相对于父级宽度还是自身的宽度

    • css3动画,transition和animation的区别,animation的属性,加速度,重力的模拟实现

    • CSS 3 如何实现旋转图片(transform: rotate)

    • sass less

    • 对移动端开发了解多少?(响应式设计、Zepto;@media、viewport、JavaScript 正则表达式判断平台。)

    • 什么是bfc,如何创建bfc?解决什么问题?

    • CSS中的长度单位(px,pt,rem,em,ex,vw,vh,vh,vmin,vmax)

    • CSS 选择器的优先级是怎样的?

    • 雪碧图

    • svg

    • 媒体查询的原理是什么?

    • CSS 的加载是异步的吗?表现在什么地方?

    • 常遇到的浏览器兼容性问题有哪些?常用的hack的技巧

    • 外边距合并

    • 解释一下“::before”和“:after”中的双冒号和单冒号的区别-

    3.JS

    • js的基本类型有哪些?引用类型有哪些?null和undefined的区别。

    • 如何判断一个变量是Array类型?如何判断一个变量是Number类型?(都不止一种)

    • Object是引用类型嘛?引用类型和基本类型有什么区别?哪个是存在堆哪一个是存在栈上面的?

    • JS常见的dom操作api

    • 解释一下事件冒泡和事件捕获

    • 事件委托(手写例子),事件冒泡和捕获,如何阻止冒泡?如何组织默认事件?

    • 对闭包的理解?什么时候构成闭包?闭包的实现方法?闭包的优缺点?

    • this有哪些使用场景?跟C,Java中的this有什么区别?如何改变this的值?

    • call,apply,bind

    • 显示原型和隐式原型,手绘原型链,原型链是什么?为什么要有原型链

    • 创建对象的多种方式

    • 实现继承的多种方式和优缺点

    • new 一个对象具体做了什么

    • 手写Ajax,XMLHttpRequest

    • 变量提升

    • 举例说明一个匿名函数的典型用例

    • 指出JS的宿主对象和原生对象的区别,为什么扩展JS内置对象不是好的做法?有哪些内置对象和内置函数?

    • attribute和property的区别

    • document load和document DOMContentLoaded两个事件的区别

    • === 和 == , [] === [], undefined === undefined,[] == [], undefined == undefined

    • typeof能够得到哪些值

    • 什么是“use strict”,好处和坏处

    • 函数的作用域是什么?js 的作用域有几种?

    • JS如何实现重载和多态

    • 常用的数组api,字符串api

    • 原生事件绑定(跨浏览器),dom0和dom2的区别?

    • 给定一个元素获取它相对于视图窗口的坐标

    • 如何实现图片滚动懒加载

    • js 的字符串类型有哪些方法? 正则表达式的函数怎么使用?

    • 深拷贝

    • 编写一个通用的事件监听函数

    • web端cookie的设置和获取

    • setTimeout和promise的执行顺序

    • JavaScript 的事件流模型都有什么?

    • navigator对象,location和history

    • js的垃圾回收机制

    • 内存泄漏的原因和场景

    • DOM事件的绑定的几种方式

    • DOM事件中target和currentTarget的区别

    • typeof 和 instanceof 区别,instanceof原理

    • js动画和css3动画比较

    • JavaScript 倒计时(setTimeout)

    • js处理异常

    • js的设计模式知道那些

    • 轮播图的实现,以及轮播图组件开发,轮播10000张图片过程

    • websocket的工作原理和机制。

    • 手指点击可以触控的屏幕时,是什么事件? 什么是函数柯里化?以及说一下JS的API有哪些应用到了函数柯里化的实现?(函数柯里化一些了解,以及在函数式编程的应用,- 最后说了一下JS中bind函数和数组的reduce方法用到了函数柯里化。)

    • JS代码调试-

    4.ES6

    • 谈一谈 promise

    • 所有的 ES6 特性你都知道吗?如果遇到一个东西不知道是 ES6 还是 ES5, 你该怎么区分它

    • es6的继承和es5的继承有什么区别

    • promise封装ajax

    • let const的优点

    • es6 generator 是什么,async/await 实现原理

    • ES6和node的commonjs模块化规范区别

    • 箭头函数,以及它的this-

    5.计算机网络

    • HTTP协议头含有哪些重要的部分,HTTP状态码

    • 网络url输入到输出怎么做?

    • 性能优化为什么要减少 HTTP 访问次数?

    • Http请求的过程与原理

    • https(对是https)有几次握手和挥手?https的原理。

    • http有几次挥手和握手?TLS的中文名?TLS在哪一网络层?

    • TCP连接的特点,TCP连接如何保证安全可靠的?

    • 为什么TCP连接需要三次握手,两次不可以吗,为什么

    • 为什么tcp要三次握手四次挥手?

    • tcp的三次握手和四次挥手画图(当场画写ack 和 seq的值)?

    • tcp与udp的区别

    • get和post的区别?什么情况下用到?

    • http2 与http1 的区别?

    • websocket

    • 什么是tcp流,什么是http流

    • babel是如何将es6代码编译成es5的

    • http2的持久连接和管线化

    • 域名解析时是tcp还是udp

    • 域名发散和域名收敛

    • Post一个file的时候file放在哪的?

    • HTTP Response的Header里面都有些啥?-

    6.浏览器相关

    • 跨域,为什么JS会对跨域做出限制

    • 前端安全:xss,csrf…

    • 浏览器怎么加载页面的?script脚本阻塞有什么解决方法?defer和async的区别?

    • 浏览器强缓存和协商缓存

    • 浏览器的全局变量有哪些

    • 浏览器同一时间能够从一个域名下载多少资源

    • 按需加载,不同页面的元素判断标准

    • web存储、cookies、localstroge等的使用和区别

    • 浏览器的内核

    • 如何实现缓存机制?(从200缓存,到cache到etag再到)

    • 说一下200和304的理解和区别

    • 什么是预加载、懒加载

    • 一个 XMLHttpRequest 实例有多少种状态?

    • dns解析原理,输入网址后如何查找服务器

    • 服务器如何知道你?

    • 浏览器渲染过程

    • ie的某些兼容性问题

    • session

    • 拖拽实现

    • 拆解url的各部分-

    7.工程化

    • 对webpack,gulp,grunt等有没有了解?对比。

    • webpack的入口文件怎么配置,多个入口怎么分割。

    • webpack的loader和plugins的区别

    • gulp的具体使用。

    • 前端工程化的理解、如何自己实现一个文件打包,比如一个JS文件里同时又ES5 和ES6写的代码,如何编译兼容他们-

    8.模块化

    • 对AMD,CMD,CommonJS有没有了解?

    • 为什么要模块化?不用的时候和用RequireJs的时候代码大概怎么写?

    • 说说有哪些模块化的库,有了解过模块化的发展的历史吗?

    • 分别说说同步和异步模块化的应用场景,说下AMD异步模块化实现的原理?

    • 如何将项目里面的所有的require的模块语法换成import的ES6的语法?

    • 使用模块化加载时,模块加载的顺序是怎样的,如果不知道,根据已有的知识,你觉得顺序应该是怎么样的?-

    9.框架

    • 使用过哪些框架?

    • zepto 和 jquery 是什么关系,有什么联系么?

    • jquery源码如何实现选择器的,为什么$取得的对象要设计成数组的形式,这样设计的目的是什么

    • jquery如何绑定事件,有几种类型和区别

    • 什么是MVVM,MVC,MVP

    • Vue和Angular的双向数据绑定原理

    • Vue,Angular组件间通信以及路由原理

    • react和vue的生命周期

    • react和vue的虚拟dom以及diff算法

    • vue的observer,watcher,compile

    • react和angular分别用在什么样的业务吗?性能方面和MVC层面上的区别

    • jQuery对象和JS的Element有什么区别

    • jQuery对象是怎么实现的

    • jQuery除了它封装了一些方法外,还有什么值得我们去学习和使用的?

    • jQuery的$(‘xxx’)做了什么事情

    • 介绍一下bootstrap的栅格系统是如何实现的-

    10.Nodejs

    • 对nodejs有没有了解

    • Express 和 koa 有什么关系,有什么区别?

    • nodejs适合做什么样的业务?

    • nodejs与php,java有什么区别

    • Nodejs中的Stream和Buffer有什么区别?

    • node的异步问题是如何解决的?

    • node是如何实现高并发的?

    • 说一下 Nodejs 的 event loop 的原理-

    11.数据结构

    • 基本数据结构:(数组、队列、链表、堆、二叉树、哈希表等等)

    • 8种排序算法,原理,以及适用场景和复杂度

    • 说出越多越好的费波拉切数列的实现方法?-

    12.性能优化

    • cdn的用法是什么?什么时候用到?

    • 浏览器的页面优化?

    • 如何优化 DOM 操作的性能

    • 单页面应用有什么SEO方案?

    • 单页面应用首屏显示比较慢,原因是什么?有什么解决方案?-

    13.其他

    • 正则表达式

    • 前端渲染和后端渲染的优缺点

    • 数据库的四大特性,什么是原子性,表的关系

    • 你觉得前端体系应该是怎样的?

    • 一个静态资源要上线,里面有各种资源依赖,你如何平稳上线

    • 如果要你去实现一个前端模板引擎,你会怎么做

    • 知道流媒体查询吗?

    • SEO

    • mysql 和 mongoDB 有什么区别?

    • restful的method解释

    • 数据库知识、操作系统知识

    • click在ios上有300ms延迟,原因及如何解决

    • 移动端的适配,rem+媒体查询/meta头设置

    • 移动端的手势和事件;

    • unicode,utf8,gbk编码的了解,乱码的解决-

    14.开放性问题

    • 你都看过什么书?最近在看什么书?

    • 用过什么框架?有没有看过什么框架的代码?

    • 有没有学过设计模式?

    • 说一说观察者模式吧!能不能写出来?

    • 你最大的优点是什么?那你最大的缺点呢?

    • 你除了写博客还有什么输出?

    • 现在你的领导给你了一份工作,要求你一个星期完成,但你看了需求以后估计需要3周才能完成,你该怎么办?

    • 平时关注的前端技术

    • 如何规划自己的职业生涯

    • 项目过程中,有遇到什么问题吗?怎么解决的?

    • 最近在研究哪方面的东西?

    • 请介绍一项你最热爱、最擅长的专业领域,并且介绍的学习规划。

    • 请介绍你参与的印象最深刻的一个项目,为什么?并且介绍你在项目中的角色和发挥的作用。-

    15.HR面

    • 你为什么要学习前端?

    • 你平时的是怎么学习前端的?有什么输出?

    • 你觉得自己最好的项目是什么?

    • 身边比较佩服的人有什么值得你学习的?你为什么没有跟他们一样?

    • 同事的什么问题会让你接受不了

    • 压力最大的事情是什么?

    • 身边的朋友通常对你的评价是什么

    • 喜欢什么样的工作氛围

    • 如何看待加班

    • 有没有对象

    • 意向城市

    • 其他的offer

    • 为什么要录取你?

    • 周末都会干什么?

    • 未来职业规划

  • 相关阅读:
    区块链系统时钟同步(NTP时间同步服务器)
    解读GPS卫星同步时钟(NTP网络时间服务器)技术方案
    qsort的cmp函数理解
    IEEE浮点数标准
    看图认识CSS
    Liunx模拟网络延时
    0-4Python2升级3、CentOS-Vim-Golang环境配置
    怎么用Windws远程桌面(mstsc)远程连接服务端的Ubuntu或者CentOS?|内网穿透|服务器安装CentOS
    [Windows]进程无响应且无法在任务管理器关闭
    [python] 批量更改不同文件夹里同名文件夹名字并移动到一起
  • 原文地址:https://www.cnblogs.com/alexzhang92/p/9415961.html
Copyright © 2011-2022 走看看