![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
javaScript学习
学习笔记
Er ist träumer.
学无止境
展开
-
上传图片尺寸校验
校验图片尺寸?原创 2023-02-18 17:56:43 · 1349 阅读 · 0 评论 -
手写一个new吧!理解下new的执行流程
/ 将新对象的__proto__赋值为构造函数的prototype。// 如果构造函数返回非空对象,则返回该对象;否则返回新创建的对象。// 构造函数的this指向新对象,并执行代码赋值。// 创建一个新对象。原创 2022-09-22 18:18:46 · 166 阅读 · 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 · 220 阅读 · 0 评论 -
2021-10-28 promise的执行
1、promise状态的定义和改变2、回调函数的执行和promise状态改变谁先执行3、.then 的链式调用(.then的执行是根据前一个方法的返回状态,确定调用resolve,rejected,异步要返回promise,同步直接返回值)...原创 2021-10-28 16:58:59 · 84 阅读 · 0 评论 -
promise常用的api
promise.all():传递多个参数,成功之后,接受value 为数组,一旦有一个promise对象失败,会调用失败原因,不会返回其他函数执行结果promise.reject() :直接调用失败函数promise.resolve() 直接调用成功函数promise.rece():传递多个promise参数,只返回第一个执行结束的参数。...原创 2021-10-28 15:50:15 · 211 阅读 · 0 评论 -
promise的理解
promise 是什么?promise是js中进行异步编程的新的解决方案,在此之前异步编程的解决方案是回调函数;Promise是一个构造函数,通过promise对象封装一个一步操作并获取结果。promise 有三种状态 pending resolved rejectedpending 到 resolvedpending 到 rejected状态不可改变且只能改变一次。promise的基本使用const p = new Promise((res,rej)=>{ setTimeo原创 2021-10-28 15:29:39 · 132 阅读 · 0 评论 -
js常见内置错误
1、错误类型ReferenceError: 引用变量不存在TypeError: 数据类型不正确RangeError: 数据值不在允许范围内SyntaxError:语法错误2、错误处理捕获错误 try catchconst a =1try(){ console.log(b)} catch(error){ console.log(error)}抛出错误 throw error3、错误对象...原创 2021-10-28 14:51:12 · 65 阅读 · 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 · 145 阅读 · 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 · 85 阅读 · 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 · 87 阅读 · 0 评论 -
使用最多的继承方式:组合继承
组合继承只由 原型链继承和盗用构造函数继承 组合两者的优点。实现了比较完美的一种继承方式。除了上图中总结的三点之外,也解决了子类构造函数不能向父类构造函数传递参数的问题原创 2021-08-01 00:20:54 · 106 阅读 · 0 评论 -
盗用构造函数继承
盗用构造函数继承(对象伪装或经典继承),个人觉得的盗用构造函数继承这个名字更语义化,听到这个名字就能想到。子类构造函数调用父类构造函数,利用函数在特定上下文中执行的特性,去创建一个对象实例主要使用call或者apply方法以先创建的对象为上下文执行构造函数。优点:解决了子类构造函数可以向父类构造函数传参的问题缺点:子类不能访问父类的原型,同样也不能访问父类的方法使用call方法,让父类构造函数在子类构造函数中执行,更像创建对象的工厂模式,是直接在子类构造函数中,创建一个新的对象以this承接上原创 2021-07-31 23:31:02 · 269 阅读 · 0 评论 -
原型链继承
实现继承是ECMAScript 唯一支持的继承方式,而这主要是通过原型链实现的基本思想是通过原型继承多个引用类型的属性和方法构造函数、原型和实例的关系: 构造函数有一个原型对象(prototype),原型对象有一个属性(construtor)指向构造函数,实例有一个__proto__指向构造函数的原型 const F1 = function (){} // 构造函数F1中的原型对象的constructor执向构造函数F1本身 console.log('F1 ===原创 2021-07-30 16:40:59 · 201 阅读 · 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 · 98 阅读 · 0 评论