JavaScript
数据类型、原型链、闭包、事件循环、异步编程、ES6
文章 · 170
- Module
- 什么是Proxy?常见使用场景有哪些?
- var let const 之间的区别
- 为什么 JS 是单线程的?
- service worker
- flex: 1 是什么意思
- Object.freeze
- Blob、ArrayBuffer、Buffer
- 防抖与节流
- 数字精度丢失
- 函数缓存
- 函数式编程
- JS 本地存储的方式及区别
- JS内存泄漏的几种情况
- 尾递归
- 数组常用方法
- DOM 常见操作
- 事件循环
- 正则表达式
- ajax 原理和实现
- new 操作符
- 事件代理
- typeof 与 instanceof 区别
- 事件模型
- 说说JS中的数据类型?存储上的差别
- Generator
- Set Map
- 新增函数方法
- ES6 新增对象扩展
- 属性的遍历方法
- ES6中super关键字有哪三种用法?
- ES6的数组新增扩展
- Decorator
- JS 做类型判断的方法有哪些
- JS 中 callee 与 caller 的作用
- 什么是IIFE?它有什么作用?
- ES7 新特性
- ES6都有什么 iterator 遍历器
- ES6动态加载import
- ES6 新特性都有哪些
- ES6 之前 JS 如何实现继承
- ES5 ES6 的继承除了写法以外还有什么区别?
- CSS JS 阻塞 dom 解析渲染
- Ajax 解决浏览器缓存问题
- !什么是闭包?闭包的产生?闭包的缺点及解决
- this (箭头函数)
- 继承 extends
- 原型与原型链
- 深拷贝与浅拷贝的区别?如何实现一个深拷贝?
- == 与 === 区别以及使用场景
- JS类型转换机制
- 类数组如何转换成数组
- localstorage 命名冲突
- valueOf()
- offset client scroll
- 单点登录(SSO)
- 上拉加载? 下拉刷新
- 字符串常用方法
- canvas 实现局部刷新页面
- attribute 和 property 的区别
- async await原理
- __proto__ prototype constructor
- Zepto tap的点透问题如何解决
- Vuex 中的 history 模式
- Unicode 和 UTF-8 之间的关系
- Thunk函数
- Symbol 类型的注意点
- SVG 和 Canvas
- Promise.prototype.finally()
- Promise.allSettled()
- Promise.all 并发限制
- Promise 异步执行机制
- Options请求
- Object.is() 与 === == 的区别
- KMP算法
- JavaScript 中如何检测一个变量是一个 String 类型?
- JS语言特点
- JS的垃圾回收机制
- JS对象 的几种创建方式
- JS基本规范
- JSON.stringify
- 什么是 JSON
- typescript 不能识别vue文件
- typeof操作符返回值有哪些,对undefined、null、NaN使用这个操作符分别返回什么
- this 和 apply 的应用
- setInterval 的弊端和解决方案
- requireJS 的核心原理,如何动态加载?如何避免多次加载?
- require 和 import 的区别 (AMD CMD CommonJS 的区别)
- requestAnimationFrame方法与动画
- promise 是什么, 底层如何实现
- new Image()
- js遍历器 Iterator
- js自定义事件
- jsonp 的思路
- javascript 的本地对象,内置对象和宿主对象
- iframe 跨域通信和不跨域通信
- event.target event.currentTarget
- document.write
- document.createDocumentFragment
- document load 和 document ready , DOMContentLoaded的区别
- delete
- delete 数组中的元素,数组长度怎么改变
- date 方法
- cookie
- chrome V8引擎 性能优秀的原因
- 如何判断当前脚本运行在浏览器还是 node 环境中?
- 如何做到修改 url 参数页面不刷新
- 外部 JS 文件出现中文字符会出现什么问题,怎么解决
- 复杂数据类型如何转变为字符串
- 同步函数与异步函数的区别
- 变量提升细节
- 原生JS字符串方法 字符串截取方法?区别
- 单一职责原则 开放封闭原则 依赖倒转原则
- 前端路由
- 前端模板引擎 与 实现 (Handlebars)
- 前端单元测试
- 创建、添加删除、替换插入、查找节点
- 列举浏览器对象模型 BOM 里常用的至少 4 个对象,并列举 window 对象的常用方法至少 5 个?
- 内部属性 [[Class]]
- 兼容性写法
- 作用域的分类,块级作用域
- 介绍一下RSA
- 什么是面向对象OOP
- 什么是原型链
- 事件绑定的三种方式
- 事件代理,什么时候用,发生在事件处理流程的那个阶段,有什么好处
- 为什么将静态资源放在其他域名
- 一次js请求一般情况下有哪些地方会有缓存处理?
- 移动端 click事件、touch事件和tap事件的区别
- 深拷贝浅拷贝
- 浏览器内核有哪些
- 注意window.name
- 求数组的最大值
- 正则表达式构造函数和正则表达字面量有什么不同
- 正则 exec()
- 检测浏览器版本方法
- 桶排序、基数排序、快速排序
- 松散类型的理解
- 断点续传原理
- 数组中字符串键值的处理
- 改变原数组的方法
- 懒加载
- 异步编程
- 异步加载JS,script 标签的 defer 和 asnyc 属性的作用以及二者的区别?
- 对象循环引用
- 对JS 原型的理解
- 对 JS 模块化的理解
- 实现对象的 map ,类似 Array.prototype.map 函数
- 实现 JS 的 AMD 模块加载器
- 如何用JS去除字符串空格
- 如何实现对一个 dom 元素进行拷贝, 包括它绑定的事件
- 如何判断网页中图片加载成功或者失败
- 判断数组的三个方法,及其优劣
- Promise.race 设计实现
- cookie 和 token 都存放在 header 中,为什么不会劫持 token?
- let const 声明在哪里
- HTTP1.0 1.1 2.0
- npm install 安装机制
- 为什么要在列表组件中写 key
- 闭包的理解与优缺点
- 遍历对象的方法有哪些?
- 递归与迭代的区别及优缺点
- 责任链模式
- 手写 myNew:模拟 new 操作符的完整实现
- 解析字符串中的数字和将字符串强制类型转换为数字的返回结果都是数字,它们之间的区别是什么?
- 解构赋值及其原理
- 装饰者模式
- 获取原型的方法
- 自定义函数节流
- 简单介绍一下 PWA