前端JavaScript面试技巧

2018-01-26  本文已影响0人  伯纳乌的追风少年

导读

请搭配导图一起看

这里写图片描述

举例面试题:

这里写图片描述 这里写图片描述 这里写图片描述

变量类型和变量计算

几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构?

基本数据类型:Undefined、Null、Boolean、Number、String
值类型:数值、布尔值、null、undefined。
引用类型:对象、数组、函数。
堆栈数据结构:是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出!
js数组中提供了以下几个方法可以让我们很方便实现堆栈:
shift:从数组中把第一个元素删除,并返回这个元素的值。
unshift: 在数组的开头添加一个或更多元素,并返回新的长度
push:在数组的中末尾添加元素,并返回新的长度
pop:从数组中把最后一个元素删除,并返回这个元素的值。

这里写图片描述 这里写图片描述

JS内置函数

这里写图片描述 这里写图片描述 这里写图片描述

值类型和引用类型

这里写图片描述

What the fuck is JSON?

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
https://zh.wikipedia.org/wiki/JSON
http://www.json.org/json-zh.html

这里写图片描述

原型和原型链-构造函数问题

这里写图片描述

instanceof的妙用

object instanceof constructor
instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。

这里写图片描述

typeof无法判断数组

这里写图片描述

new对象过程

这里写图片描述 这里写图片描述

原型链继承

这里写图片描述 这里写图片描述

原型规则(隐式原型和显式原型)

这里写图片描述 这里写图片描述 这里写图片描述

原型链继承例子

这里写图片描述

zepto原型链

这里写图片描述

链式操作

这里写图片描述

作用域和闭包-执行上下文

这里写图片描述

变量(自由变量)

这里写图片描述

this

这里写图片描述

作用域

这里写图片描述

确定点击按钮的作用域

这里写图片描述

立即函数

( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法
模仿一个私有作用域,用匿名函数作为一个“容器”,“容器”内部可以访问外部的变量,而外部环境不能访问“容器”内部的变量,所以( function(){…} )()内部定义的变量不会和外部的变量发生冲突,俗称“匿名包裹器”或“命名空间”。
函数声明和函数表达式不同之处在于,一、Javascript引擎在解析javascript代码时会‘函数声明提升’(Function declaration Hoisting)当前执行环境(作用域)上的函数声明,而函数表达式必须等到Javascirtp引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式,二、函数表达式后面可以加括号立即调用该函数,函数声明不可以,只能以fnName()形式调用 。
匿名函数属于函数表达式
JQuery使用的就是这种方法,将JQuery代码包裹在( function (window,undefined){…jquery代码…} (window)中,在全局作用域中调用JQuery代码时,可以达到保护JQuery内部变量的作用。
http://www.jb51.net/article/50967.htm

这里写图片描述

闭包

这里写图片描述 这里写图片描述

异步和单线程

这里写图片描述

同步和异步

这里写图片描述

异步场景

这里写图片描述 这里写图片描述 这里写图片描述

setTimeout过程

这里写图片描述 这里写图片描述

JS-Web-API

这里写图片描述

获取时间

这里写图片描述 这里写图片描述

数组API

这里写图片描述

遍历数组和对象

使用if判断数组(for,forEach)和对象(for in)


这里写图片描述

对象API

这里写图片描述 这里写图片描述

随机数(长度一定)

这里写图片描述

Dom

这里写图片描述 这里写图片描述

JS中Attribute 和prototype 的区别是一个是标签属性 一个是对象属性

这里写图片描述

网络基础

这里写图片描述 这里写图片描述

图片懒加载

这里写图片描述 这里写图片描述 这里写图片描述 这里写图片描述

BOM

这里写图片描述 这里写图片描述 这里写图片描述 这里写图片描述 这里写图片描述

事件绑定

这里写图片描述

代理

事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。


这里写图片描述

冒泡

这里写图片描述 这里写图片描述

ajax请求(包括http协议)

这里写图片描述 这里写图片描述 这里写图片描述

js模块化

这里写图片描述

不使用模块化

这里写图片描述 这里写图片描述

export和require

这里写图片描述

requires.js

这里写图片描述
引入
这里写图片描述 这里写图片描述

CommonJS

这里写图片描述

webpack

这里写图片描述 这里写图片描述
上一篇下一篇

猜你喜欢

热点阅读