面面俱到

面试题 —— 基础篇

涉及知识点

基础知识:原型、原型链、作用域、闭包、异步、单线程
JSAPI:DOM 操作、 ajax、事件绑定
开发环境:版本管理、模块化、打包工具
运行环境:页面渲染、性能优化

原始类型有哪几种 null 是对象嘛

在 JS 中,存在着 6 种原始值,分别是

  • boolean
  • null
  • undefined
  • number
  • string
  • symbol

首先原始类型存储的都是值,是没有函数可以调用的,比如 undefined.toString()
‘1’.toString() 可以使用原因是 ‘1’ 被强制转换成了 String 类型,String 类型也是对象类型。
js 的 number 类型是浮点型,使用计算中会出现 bug ,比如 0.1 + 0.2 != 0.3。
string 类型是不可变的。
null 是对象类型是历史遗留 bug ,在 js 的最初版本中使用的是 32 位 系统,为了性能考虑使用低位存储变量的类型信息,000 开头代表是对象,然而 null 表示为全零。

对象类型和原始类型的不同之处 函数参数是对象会发生什么问题

在 js 中,除了原始类型那么其他的都是对象类型了。对象类型和原始类型不同的是,原始类型存储的是值,对象类型存储的是地址(指针)。当你创建了一个对象类型的时候,计算机会在内存中帮我们开辟一个空间用来存放值,但是我们需要找到这个空间,这空间会拥有一个地址(指针)。

1
2
3
const a = []
const b = a
b.push(1)

对于常量 a 来说,假设内存地址(指针)为 #001,那么在地址 #001 的位置放了值 [],常量 a 存放了地址(指针) #001。

前端需要注意哪些 SEO

  • 合理的 title、description、keywords:搜索对着三项的权重逐个减小,title值强调重点即可,重要关键词出现不要超过 2 次,而且要靠前,不同页面 title 要有所不同;description 把页面内容高度概括,长度合适,不可过分堆砌关键词,不同页面 description 有所不同; keywords 列举出重要关键词即可
  • 语义化的 HTML 代码,符合 W3C 规范:语义化代码让搜索引擎容易理解网页
  • 重要内容 HTML 代码放在最前:搜索引擎抓取 HTML 顺序是从上到下,有的搜索引擎对抓取长度有限制,保证重要内容一定会被抓取
  • 重要内容不要用 js 输出:爬虫不会执行 js 获取内容
  • 少用 iframe:搜索引擎不会抓取 iframe 中的内容
  • 非装饰性图片必须加 alt
  • 提高网站速度:网站速度是搜索引擎排序的一个重要指标

JS 中使用 typeof 能得到的哪些类型

何时使用 === 何时使用 ==

window.onload 和 DOMContentLoaded 的区别

用 JS 创建 10个 a 标签,点击的时候弹出来对应的序号

简述如何实现一个 模块加载器,实现类似 require.js 和基本功能

实现数组的随机排序

Ajax 请求的步骤

第一步(得到 XMLHttpRequest)
第二部(打开与服务器的链接)
xmlHttp.open(请求方式,请求URL,是否异步);用来打开与服务器的连接,需要三个参数;
第三部(发送请求)
xmlHttp.send(null);如果括号里不给 null 可能会造成部分浏览器无法发送;
第四部
在 xmlHttp 对象的一个事件上注册监听器: onreadystatechange 得到的 5个状态

  • 0状态:刚创建,还没有调用 open()方法;
  • 1状态:请求刚开始,调用了 open()方法,但是没有调用 send 方法;
  • 2状态:调用完了 send()方法;
  • 3状态:服务器已经开始响应。但不表示响应结束;
  • 4状态:服务器响应结束!
    得到 xmlHttp 对象状态
    var state = xmlHttp.readyState; // 可能是 0,1,2,3,4
    得到服务器的响应状态码
    var state = xmlHttp.status; // 可能是 200、404、200
    得到服务器的响应内容

相关资料
[视频]BAT大牛带你横扫初级前端JavaScript面试
[视频]前端面试求职跳槽通关路线
两年前端 9 ~ 10月面经(已拿阿里,头条,pdd,快手 offer)
前端面试之道
掘金 前端面试之道2
失业两个月拿到offer后,入手MacBook Pro!
新出炉的阿里、腾讯、美团以及网易等一线公司面试总结
推荐这 10 个 GitHub 上超火的前端面试项目,打造自己的加薪宝库!
推荐几个大厂的前端代码规范,你也能写出诗一样的代码!
面试官:说说你对SPA(单页应用)的理解?
分享一位同学的阿里、百度前端面经
互联网寒冬,一年经验字节跳动、虾皮、快手、拼多多前端面试总结
JavaScript 正则表达式迷你书
JS正则表达式完整教程
2 年前端 7~9 月大厂面试经历总结
阿里、腾讯、美团以及网易等一线互联网公司面试总结

You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.