美文网首页
前端面试手册

前端面试手册

作者: 庙爷 | 来源:发表于2018-01-25 18:24 被阅读0次

HTML

doctype 是什么

document type 文档类型定义(DTD),告诉浏览器以何种协议来解析,声明可以切换标准模式或兼容模式

meta viewport

针对移动端的控制大小缩放等

怎么样做多语言页面

来源用语言判断通过 ip 段 记录 cookie

使用框架有相对应的库,可进行静态或动态的文案翻译

构建工具如 webpack 的思路一般是维护 map 映射表,只能解决静态文案

通常解决是 构建工具 + 通用翻译函数

data- 属性是干什么的

自定义数据属性,可以用 dataset 访问

cookie, sessionStorage ,localStorage 的区别

cookie 只能存 4kb 一般是由服务器创建的,他会被附加到每个 http 请求阿忠

sessionStorage 会话级别 5mb

localStorage 5mb

<script>, <script async>, <script defer> 的区别

script 渲染到这个标签就会立刻加载并执行并会阻塞解析完成后继续解析

async 加载脚本和解析文档同时进行,加载完成执行脚本并会阻塞解析,完成后继续解析

defer 所有元素解析完成才会执行脚本

什么是渐进渲染

为什么建议 linkheadscriptbody,你有什么例外吗

浏览器渲染机制


Css

css 选择器都有哪些

类选择器,id 选择器,标签选择器,通配符选择器,属性选择器,后代选择器,同级选择器,派生选择器,多元素选择器,伪元素选择器

reset 你都重置哪些样式,为什么

margin, padding, font-size 每个浏览器默认的间距不一样

html5 的标签重置成 block

body 的 line-height 默认是 normal 大概 1.2 左右,重置成 1

a 的下划线

table border间距

ul list-type

BFC 是什么

Block Formatting Context

块状格式化上下文,属于普通流

创建条件: float 不为 none,postion 不为 static, overflow 不为 visible, flex, grid, inline-block, table-cell

css 常用布局

css 盒模型 和 怪异盒模型

标准: width = content
怪异 width = border + padding + content

标准模仿怪异

box-sizing: border-box

flex, grid

设置 flex 时,float,clear, vertical-align 会失效
flex 有主轴和交叉轴

px/em/rem

px 本身
em 相对父级
rem 相对根

css 预处理器

清除浮动

.clearfix::after {
    content: "";
    display: block;
    clear: both;
}

JavaScript

js数据类型有哪些,怎么判断其类型

String、Number、Boolean、Symbol、Undefined、Null

typeof, instanceof, constructor, Object.prototype.toSting.call()

解释事件委托

把一个元素响应事件(click、keydown......)的函数委托到另一个元素;
通过事件冒泡机制从而触发它的外层元素的绑定事件上,然后在外层元素上去执行函数

解释 this 在 javascript 中

this指的是,调用函数的那个对象

解释原型链继承

每个函数有一个 _proto_ 会一直向上找,直到找到原型链顶端的 null

AMD 和 CommonJS

CommonJS 有 module, export, require
AMD 有 依赖

解释为什么以下不能作为IIFE:function foo(){}(); 需要改变什么才能使其成为一个IIFE?

括号包起的匿名函数

const foo = (function(){ })();

解释什么是闭包 ,怎么使用

闭包是在函数外部能取到函数内部的作用域的函数

function a () {
    const b = 1;
    return function() {
      return b  
  }
}
const c = a()
c()

你能描述一下 forEachmap 的区别吗

遍历,map

匿名函数的典型用例是什么

items.forEach((item) => {})

你怎么组织你的代码?(模块化, 经典继承)

宿主对象和原生对象

有一个函数 function Person () {};var person = Person()var person = new Person() 有什么区别

callapply 的区别

传参不一样,apply传数组

解释一下 Function.prototype.bind

什么场景下用 document.write()

功能检测,功能推断和使用UA字符串有什么区别?

Ajax 的实现, 越详细越好

使用Ajax有什么优点和缺点?

JSONP 原理, (以及他为什么不是 Ajax)

用过 js 模板吗,都用过什么库

解释一下作用域提升

解释一下事件冒泡

解释一下 attribute 和 property

为什么扩展内置 JavaScript 对象不是一个好主意

load 事件和 DOMContentLoaded 事件之间的区别?

加载资源和解析成功

===== 的区别

强制转换和非强制转换

解释与JavaScript有关的同源策略

实现 duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]

三元表达式是什么

statement ? execute : execute

"use strict" 是什么, 使用它有什么优缺点?

写一个 0 到 100 的迭代器,当是 3 的倍数时 输出 'fizz' , 5 的 倍数 输出 'fuzz', 既能被 3 也能被 5 整除 出书 'fizzbuzz'

为什么最好不要动全局环境

你为什么用 load 事件,这个事件有没有缺点,你还知道可以替代的方法吗,如果有为什么要用这个

解释一下单页面应用,怎样做 SEO

怎样实现一个 Promise

Promise 比起 callback 有什么优缺点

解释可变对象和不可变对象的区别

解释同步和异步函数之间的区别

事件循环是什么, 它与 调用堆栈 和 任务队列 有什么区别

function foo() {}var foo = function() {} 有什么区别

let, var const 有什么区别

ES6 的 Class 和 ES5 的 构造函数 有什么区别

es5如何实现super关键字

JavaScript的节流和防抖

function debonce(fn, delay) {
return function (args){
  setTimeout(function (){
fn.apply(args)
}, delay)
}

}
function thorrtle (fn){

}

event loop,microtask,task queue

macro-task == task
mirco-task == JOB

generator

function  * a (i) {
  yield i;
  yield i + 10;
}
const b = a(1);
console.log(b.next().value);
console.log(b.next().value);

React

生命周期

setState是异步的还是同步的

子组件和父组件componentDidMount哪一个先执行

redux的一般流程

a组件在b组件内,c组件在a组件内,如何让他渲染出来,a组件和c组件同级

react组件的优化

react组件的通信

react 的virtual dom和diff算法的实现方式

MVC、MVVM了解么,数据双向绑定和单向绑定实现方式

react-router实现方式,单页面应用相关东西

react的ssr了解么?大概怎么实现

Vue

vue的底层原理?

vue组件之间的通信?

浏览器

http三次握手后拿到HTML,浏览器怎么加载

浏览器怎么优化的动画

前端优化一般都做哪些

浏览器缓存

http常见状态码

http2.0相关

post、get区别

构建工具

编写过webpack的扩展嘛,Plugin或者loader

babel转换的过程

相关文章

网友评论

      本文标题:前端面试手册

      本文链接:https://www.haomeiwen.com/subject/dofbaxtx.html