前端JavaScript面试技巧

导读

请搭配导图一起看

这里写图片描述

举例面试题:

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

变量类型和变量计算

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

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

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

JS内置函数

  • 内置函数Object,Array,Boolean,Number,String,Function,Date,RegExp,Error
  • 内置对象Math,JSON…..
这里写图片描述
这里写图片描述
这里写图片描述

值类型和引用类型

  • 值类型:数值、布尔值、null、undefined。
  • 引用类型:对象、数组、函数。
这里写图片描述

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

这里写图片描述
  • Dom操作常用API

  • 获取Dom节点getElementById

    • 获取父元素 parentElement
    • 获取子元素 childNodes
  • 新增节点appendChild

  • 创建元素createElement

  • 删除节点 removeChild

这里写图片描述

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

这里写图片描述

网络基础

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

图片懒加载

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

BOM

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

事件绑定

这里写图片描述

代理

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


这里写图片描述

冒泡

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

ajax请求(包括http协议)

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

js模块化

这里写图片描述

不使用模块化

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

export和require

这里写图片描述

requires.js

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

CommonJS

这里写图片描述

webpack

这里写图片描述
这里写图片描述
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在线阅读 http://interview.poetries.top[http://interview.poetr...
    前端进阶之旅阅读 114,804评论 24 450
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    极乐君阅读 5,588评论 0 106
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    伯纳乌的追风少年阅读 25,888评论 2 46
  • 从梦中醒来,梦里的世界瞬间消失。如同一只黑夜里阴沟里的狡猾老鼠,闻见人声就匆忙逃离,无法捉住,但它存在过。梦也是一...
    森木阅读 536评论 0 2
  • 一 哇哇 的啼哭声响遍整个房间,喜得孩儿的爸爸喜极而泣,妈妈也露出欣慰的笑容! 还没一个月,那小孩的爸爸越来越...
    秦曦77阅读 623评论 0 1