
javaScript学习
学习笔记
Er ist träumer.
学无止境
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
上传图片尺寸校验
校验图片尺寸?原创 2023-02-18 17:56:43 · 1480 阅读 · 0 评论 -
手写一个new吧!理解下new的执行流程
/ 将新对象的__proto__赋值为构造函数的prototype。// 如果构造函数返回非空对象,则返回该对象;否则返回新创建的对象。// 构造函数的this指向新对象,并执行代码赋值。// 创建一个新对象。原创 2022-09-22 18:18:46 · 216 阅读 · 0 评论 -
js数组对象去重
双循环 splice 删除重复 let arr = [ {id:1,name:'vue'}, {id:2,name:'react'}, {id:2,name:'react'}, {id:3,name:'node'}, {id:4,name:'html'}, {id:5,name:'javascript'}, {id:6,name:'div'}, {id:6,name:'div'} ] function deduplication(o){ .原创 2022-03-11 17:56:35 · 268 阅读 · 0 评论 -
2021-10-28 promise的执行
1、promise状态的定义和改变 2、回调函数的执行和promise状态改变谁先执行 3、.then 的链式调用(.then的执行是根据前一个方法的返回状态,确定调用resolve,rejected,异步要返回promise,同步直接返回值) ...原创 2021-10-28 16:58:59 · 127 阅读 · 0 评论 -
promise常用的api
promise.all():传递多个参数,成功之后,接受value 为数组,一旦有一个promise对象失败,会调用失败原因,不会返回其他函数执行结果 promise.reject() :直接调用失败函数 promise.resolve() 直接调用成功函数 promise.rece():传递多个promise参数,只返回第一个执行结束的参数。 ...原创 2021-10-28 15:50:15 · 269 阅读 · 0 评论 -
promise的理解
promise 是什么? promise是js中进行异步编程的新的解决方案,在此之前异步编程的解决方案是回调函数;Promise是一个构造函数,通过promise对象封装一个一步操作并获取结果。 promise 有三种状态 pending resolved rejected pending 到 resolved pending 到 rejected 状态不可改变且只能改变一次。 promise的基本使用 const p = new Promise((res,rej)=>{ setTimeo原创 2021-10-28 15:29:39 · 184 阅读 · 0 评论 -
js常见内置错误
1、错误类型 ReferenceError: 引用变量不存在 TypeError: 数据类型不正确 RangeError: 数据值不在允许范围内 SyntaxError:语法错误 2、错误处理 捕获错误 try catch const a =1 try(){ console.log(b) } catch(error){ console.log(error) } 抛出错误 throw error 3、错误对象 ...原创 2021-10-28 14:51:12 · 97 阅读 · 0 评论 -
回调函数(同步和异步)
同步回调:立即执行,完全执行完了才结束,不会进入回调列队中 const arr=[1,3,5] arr.forEach(i=>{ console.log(i) }) console.log('forEach()之后') /* 1 3 5 forEach()之后 */ 异步回调:不会立即执行,会放入回调列队中执行 setTimeout(()=>{ console.log('setTimeout') },0) console.log('setTimeout()之后') /* s原创 2021-10-28 11:41:27 · 200 阅读 · 0 评论 -
函数对象与实例对象
实例对象:new函数产生的对象,为实例对象 function Fn(name){ this.name = name } const obj = new Fn('zs') // obj是实例对象 又称 对象 函数对象:将函数作为对象使用时,简称为函数对象 function Fn(name){ this.name = name } console.log(Fn.prototype) // Fn 是函数对象 ...原创 2021-10-28 11:32:18 · 123 阅读 · 0 评论 -
ES6中的Class类(1)
类的定义 类就是原型和构造函数概念的语法糖;定义类有两种方式:类声明和类表达式。 == 注意 == 类表达式不存在变量提升,不能在声明前引用 console.log('Test1 :>> ', Test); // undefined var Test = class {} console.log('Test2 :>> ', Test); // Test{} 函数受函数作用域限制,而类式受块作用域限制(var声明的类表达式不受限制,因为var没有作用域块) {原创 2021-08-01 17:22:15 · 132 阅读 · 0 评论 -
使用最多的继承方式:组合继承
组合继承只由 原型链继承和盗用构造函数继承 组合两者的优点。实现了比较完美的一种继承方式。 除了上图中总结的三点之外,也解决了子类构造函数不能向父类构造函数传递参数的问题原创 2021-08-01 00:20:54 · 141 阅读 · 0 评论 -
盗用构造函数继承
盗用构造函数继承(对象伪装或经典继承),个人觉得的盗用构造函数继承这个名字更语义化,听到这个名字就能想到。子类构造函数调用父类构造函数,利用函数在特定上下文中执行的特性,去创建一个对象实例 主要使用call或者apply方法以先创建的对象为上下文执行构造函数。 优点:解决了子类构造函数可以向父类构造函数传参的问题 缺点:子类不能访问父类的原型,同样也不能访问父类的方法 使用call方法,让父类构造函数在子类构造函数中执行,更像创建对象的工厂模式,是直接在子类构造函数中,创建一个新的对象以this承接上原创 2021-07-31 23:31:02 · 352 阅读 · 0 评论 -
原型链继承
实现继承是ECMAScript 唯一支持的继承方式,而这主要是通过原型链实现的 基本思想是通过原型继承多个引用类型的属性和方法 构造函数、原型和实例的关系: 构造函数有一个原型对象(prototype),原型对象有一个属性(construtor)指向构造函数,实例有一个__proto__指向构造函数的原型 const F1 = function (){} // 构造函数F1中的原型对象的constructor执向构造函数F1本身 console.log('F1 ===原创 2021-07-30 16:40:59 · 253 阅读 · 0 评论 -
创建对象的三种模式
使用 Object 构造函数或对象字面量可以方便地创建对象,但这些方式也有明显不足:创建具 有同样接口的多个对象需要重复编写很多代码。 工厂模式 用方法接收参数,并返回一个对象 function createCar(n, p, like) { let o = new Object() o.name = n o.price = p o.isLike = like o.say = function () { console.log(`${this.name}${this.price}原创 2021-07-30 14:49:58 · 138 阅读 · 0 评论