随笔分类 - JavaScript
摘要:一、什么是BOM BOM(Browser Object Model) 是浏览器对象模型。 二、DOM 和BOM 区别: 浏览器的全部内容可以看作是DOM;整个浏览器可以看成是BOM,区别如下: 1. DOM 是文档对象模型;BOM是浏览器对象模型 2.DOM 把文档 当做一个对象来看待;BOM是把浏
阅读全文
摘要:一、DOM以及DOM是哪种数据结构 文档对象模型(DOM)是 HTML 和 XML 文档的编程接口,提供了文档的结构化的表述 文档对象模型DOM是树结构(DOM树) 二、DOM操作常用API 1.DOM节点操作 1)获取DOM节点: document.getElementById('id属性值');
阅读全文
摘要:一、异步的实现: 1、 使用异步回调,但有callback hell (回调地狱)的风险,所以为了解决这个回调地狱的问题采用了Promise 2、Promise then catch 链式调用,但也是基于回调函数的 3、async/await 是用同步的语法来编写异步代码,彻底消灭回调函数 二、as
阅读全文
摘要:一、javascript中为什么需要引入异步? 1.我们知道js是单线程语言,只能同时做一件事。但在遇到需要等待(网络请求,定时任务)不能卡住,所以引入了异步 2.异步就是为了解决单线程需要等待的问题(如:网络请求,定时任务) 3.异步是基于回调 callback 函数形式 二、同步和异步 1.异步
阅读全文
摘要:一、作用: call、apply、bind 作用是改变函数执行的上下文,简而言之就是改变函数运行时的this指向 二、区别 call: 1. 传入的参数不固定 2.第一个参数是this绑定的对象,后面其余的参数是传入函数执行的参数列表 3. 第一个参数为null、undefined的时候,默认指向w
阅读全文
摘要:Map是一种键值队的集合,和对象Object类似。两者的区别: 一、Map和Object 的区别 键的类型:在Map中,键可以是任何类型(包括对象、函数、undefined、NaN等等);而在Object中,键只能是字符串或者符号。 API 不同 有序性:在Map中,键值对是按照插入(添加)的顺序排
阅读全文
摘要:Set 是一种 集合数据结构,它类似于数组,但与数组不同 一、Set 与 数组的区别? API不同 Set 元素不能重复(可以用作数组去重),而数组中的元素可以重复 Set 是无序结构(即添加的顺序和输出顺序不能保证一致),但操作很快;而数组是有序数据结构(即添加的顺序和输出顺序一致),但操作慢 二
阅读全文
摘要:设计模式的三大类: 创造型: 构造器模式--不推荐使用 原型模式 工厂模式 抽象工厂模式 -- js中应用的很少 建造者模式 单例模式 结构型: 装饰器模式 适配器模式-- 轻易不会用 * 代理模式 重要 桥接模式 组合模式 行为型: 策略模式 观察者模式--重要,应用比较多 发布订阅模式 -- 重
阅读全文
摘要:实现一个new操作符 实现一个instacneof操作符 实现Ajax请求 实现深拷贝 手写apply函数 6.手写call函数 7.手写bind函数 8.手写promise (实现异步调用、链式调用.then .catch、API实现:Promise.resolve、Promise.reject、
阅读全文
摘要:1.创建新节点 document.createDocumentFragment() //创建一个DOM片段 document.createElement('tag') //创建一个元素 document.createTextNode() //创建一个文本节点 2.添加节点 appendChild()
阅读全文
摘要:异步加载JS有哪些方式? js数据类型有哪些? typeof 返回的数据类型有哪些? var let const 区别 null 和 undefied 区别 == 和 有什么不同 typeof 和 instanceof 区别 instanceof 运算符的实现原理以及手写实现? 判断数组的方法有哪些
阅读全文
摘要:先看一下下面这段js代码: console.log('1'); setTimeout(function(){ console.log('2'); },0); console.log('3'); 请问打印的结果是什么? 这段代码看似很简单,但如果不了解JavaScript运行机制就很容易答错。正确的输
阅读全文
摘要:谈谈对 MVC、MVP和MVVM 架构模式的理解 mv*(即mvc、mvp和mvvm)的目的是把数据、业务逻辑和界面这三块解耦,分离关注点。不仅利于团队协作和测试,更利于甩锅维护和管理。业务的逻辑不再关心底层数据的读写,而这些数据有以对象的形式呈现给业务逻辑层。 一、MVC MVC三个单词的首字母缩
阅读全文
摘要:1.前后端通信方式 2.如何创建Ajax 3.什么是同源策略?同源策略的目的?非同源的限制范围? 4.解决跨域的几种方式 1、前后端通信的方式: Ajax WebScocket CROS 2、如何创建Ajax 原理: 通过XMLHttpRequest对象向服务器发送异步请求,从服务器获得数据,然后操
阅读全文
摘要:内容介绍: 类的声明 生成实例 继承的几种方式 类的声明与实例化 /** * 类的声明 */ function Animal(){ this.name = 'name'; } /** * ES6中类的声明 */ class Animal2{ constructor(){ this.name = 'n
阅读全文
摘要:题目: 1.如何正确判断一个变量是数组 2. 写一个原型链继承的例子 3.描述 new 一个对象的过程 知识点: 构造函数 构造函数-扩展 原型规则 原型链 instanceof 创建对象的几种方法: 1. 字面量方法 var o1 = {name:'o1'}; 2. new Object(): v
阅读全文
摘要:http 常见的状态码有哪些? 什么是 Restful API? http常见的header 有哪些? 描述一下 http 的缓存机制(重要) https以及与http的区别 https是如何保证安全的 请描述 TCP 三次握手和四次挥手 HTTP协议的主要特点: 简单快速:客户端向服务端请求服务时
阅读全文
摘要:JS变量按存储方式区分为哪些类型?: js变量按照存储方式分为两种类型:值类型 和 引用类型 1.值类型(基本类型): 布尔值(boolean) 、 null 、undefined 、数值(number)、字符串( string) 、Symbol(表示独一无二的值) 2.引用类型: 对象(Objec
阅读全文
摘要:DOM事件的级别: DOM级别一共可以分4个级别:DOM0级、DOM1级、 DOM2级 、DOM3级。而DOM事件级别分为3个级别:DOM0级事件处理、DOM2级事件处理、DOM3级事件处理 1. DOM0级事件: 通过onclick 进行事件绑定 事件绑定:element.onclick=func
阅读全文
摘要:变量提升: 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域。变量提升即将变量声明提升到它所在作用域的最开始的部分,举个例子如: 之所以会是以上的打印结果,是由于js的变量提升,实际上上面的代码是按照以下来执行的: 函数提升: 函数声明
阅读全文