JS
数据类型
JS变量按照存储方式区分为值类型
和引用类型
,并描述其特点?
js值类型和引用类型的区别
值类型,在变量赋值基本类型时,会在变量上创建一个新值,然后把值复制到为变量分配的位置上。
引用类型的赋值,其实是对象保存在栈区地址指针的赋值,因此两个变量指向同一个对象,任何的操作都会相互影响。
原始/基础类型: 按值访问 - Number String Boolean Null Undefined Symbol(ES6)
引用类型: 值是保存在内存中的对象 - Object Array Function
与其他语言不同的是,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象。所以引用类型的值是按引用访问的。
隐式转换
"+" "-"
== ===
if
类型检测
- typeof: 基础类型以及函数对象(null-Object)
-
instanceof: 基于原型链操作
- 左操作数为对象,不是就返回false,右操作数必须是函数对象或者函数构造器,不是就返回typeError异常。
- 原理:判断左边的左操作数的对象的原型链上是否有右边这个构造函数的prototype属性。
- 坑: 不同window或iframe之间的对象类型检测不能使用instanceof!
- Object.prototype.toString.apply(value).slice(8, -1)
何时使用 === 何时使用==
if (a != null) => if (a !== null && a!== undefined)
JS中有哪些内置函数
javaScript内置函数大全
Array String Math Date RegExp Object
如何理解JSON
日期格式
随机数·长度固定的字符串
遍历对象和数组的通用forEach函数
如何检测浏览器的类型
拆解url各个部分
数组去重、数组排序、对象、数组index查找 - 数据处理
加载资源的类型
加载一个资源的过程
浏览器渲染页面的过程
垃圾回收机制
排序算法(冒泡)
如何深度克隆
详细解释AJAX的工作原理
css权重
window.onload和DOMContentLoaded的区别
性能优化
安全性-XSS跨站请求攻击·XSRF跨站请求伪造
对变量提升的理解
this几种不同的使用场景
创建10个a标签, 点击的时候弹出来对应的序号
如何理解作用域
实际开发中闭包的作用
原型
原型 · 公式整理
- 凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。
- person1.constructor == Person 实例的构造函数属性(constructor)指向构造函数。
- 每个对象都有 proto 属性,但只有函数对象才有 prototype 属性
- Person.prototype.constructor == Person 在默认情况下,所有的原型对象都会自动获得一个 constructor(构造函数)属性,这个属性(是一个指针)指向 prototype 属性所在的函数(Person)
- 原型对象(Person.prototype)是 构造函数(Person)的一个实例。
判断数组
原型链继承的例子
描述new一个对象的过程
zepto/JQuery源码中如何使用原型链
说一下zepto/JQuery插件机制
结合自己的开发经验,做过的基于原型的插件
异步
同/异步
什么是单线程,和异步什么关系
什么是event-loop
是否用过JQuery的Deferred
Promise的基本使用和原理
介绍一下asyne/await(和Promise的区别、联系)
setTimeout笔试题
前端使用异步的场景有哪些
总结一下当前JS解决异步的方案
ES6
ES6模块化如何使用,开发环境如何打包
Class和普通构造函数有何区别
Promise的基本使用和原理
ES6其他常用功能 let/const/箭头函数/模版字符串/解构赋值/函数默认参数/块级作用域
虚拟dom
vistual dom是什么?为何会存在vistual dom
vistual dom如何使用,核心API是什么 - snabbdom.h.patch(container,vnode).patch(vnode,newVnode)
介绍一下diff算法
Vue
如何理解MVVM
如何实现MVVM
是否解读过vue的源码
使用JQuery和使用框架的区别
选择框架的理由·vue·react·两者的区别
vue中如何实现响应式(vue双向数据绑定的原理)· Object.defineProperty
vue中如何解析模版
vue的整个实现流程
项目经验
项目中遇到的问题·以及
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。