javascript
文章平均质量分 72
搬砖猴哥
程序员中的猴哥
展开
-
原型链继承/借用构造函数继承/组合式继承/寄生继承/es6类继承
继承子类能够使用父类的属性和方法原型链继承创建人的类function Person(name, age) { this.name = name this.age = age}Person.prototype.say = function () { console.log('说话了')}const p1 = new Person('张三', 19)创建狗的类function Dog(name, age) { this.name = name this.ag原创 2021-12-27 14:01:39 · 440 阅读 · 0 评论 -
彻底弄懂javascript中的异步、微任务、宏任务、Eventloop
概念js是单线程的,也就代表js只能一件事情一件事情执行,那如果一件事情执行时间太久,后面要执行的就需要等待,需要等前面的事情执行完成,后面的才会执行。所以为了解决这个问题,js委托宿主环境(浏览器)帮忙执行耗时的任务,执行完成后,在通知js去执行回调函数,而宿主环境帮我们执行的这些耗时任务也就是异步任务js本身是无法发起异步的,但是es5之后提出了Promise可以进行异步操作执行流程主线程先判断任务类型如果是同步任务,主线程自己执行如果是异步任务,交给宿主环境(浏览器)执行浏览原创 2021-06-16 14:12:54 · 833 阅读 · 13 评论 -
js垃圾回收机制和闭包
js垃圾回收机制概念js的内存是自动进行分配和回收的,内存在不使用的时候会被垃圾回收器自动进行回收,但是我们需要了解垃圾回收的机制,从而防止内存泄漏(内存无法被回收)生命周期内存创建分配: 申请变量\对象\函数等内存使用: 对内存进行读写,也就是使用变量或函数对象等内存销毁: 变量\函数\对象等不再使用,即被垃圾回收自动回收掉核心算法判断内存是否不再使用,如果是则回收引用计数ie采用的是引用计数计算当前内存被引用的次数,被引用一次计数+1,不被引用一次计数-1,当计数为0,该内存释放回原创 2021-05-26 17:26:12 · 574 阅读 · 3 评论 -
electron实现桌面应用
1. 简介官网Electron是由GitHub开发,使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序Electron 可以让你使用纯 JavaScript 调用丰富的原生 APIs 来创造桌面应用。你可以把它看作是专注于桌面应用在PC端混合app开发中,nwjs和electron都是可选的方案,它们都是基于Chromium和Node的结合体, 而electron相对而言是更好的选择方案,它的社区相对比较活跃,bug比较少,文档先对利索简洁。electron 相对来说比原创 2020-08-21 16:05:24 · 4854 阅读 · 0 评论 -
坤坤老师告诉同学们什么是观察者模式
观察者模式什么是观察者模式?观察者模式即一个对象被多个对象所依赖,当被依赖的对象发生更新时,会自动通知所有依赖的对象。例如:微博上的坤坤老师,当坤坤老师在微博发文章时,会自动通知所有的粉丝。坤坤:坤坤老师发微博了,赶紧来围观啊!坤坤老师即为目标对象,所有的粉丝即为依赖对象。代码实现:首先我们定义一个kk老师的类(目标类)// 目标类class Kk { constructor () { // 存储所有的粉丝(粉丝:观察者们) this.fans = [] }原创 2020-07-26 20:58:19 · 1573 阅读 · 1 评论 -
面试题之利用call或者apply实现bind功能
需求利用call或者apply实现bind功能分析我们这里举例使用apply来实现bind功能既然最终实现的是bind功能,那就要先分析bind都具有什么功能根据函数生成新的函数改变期this指向传递第二个参数数组实现步骤1. 定义newBind方法Function.prototype.newBind = function (obj) { return function () { }}2. 使用该方法// 改变fn函数this指向objfunctio原创 2020-06-01 19:26:07 · 528 阅读 · 0 评论 -
百度AI人像动漫化
人像动漫化课程知识小程序选择图片图片转为base64格式百度AI鉴权百度AI人像动漫化接口创建小程序创建home页面删除index和logs页面路劲和页面配置小程序外观"navigationBarBackgroundColor": "#FF83FA","navigationBarTitleText": "动漫相机","disableScroll": true页面基本布局wxml<view class="home"> <image原创 2020-05-26 20:13:08 · 2536 阅读 · 1 评论 -
react面试题整理
react面试宝典为什么在react脚手架中的js中能够写类似html的格式代码?因为脚手架已经帮我们集成配置了,通过babel中的@babel-preset-react来进行编译的在react中关于事件函数是否传递参数定义的方式不同?事件函数没有传递参数:直接定义事件函数,并将事件函数交给onClickadd = () => { console.log(this) ...原创 2020-05-03 17:54:51 · 2254 阅读 · 0 评论 -
javascript中小白必会的方法
01-解构JavaScript参数解构是一种从对象中提取属性的常用方法。const obj = { name: 'Joe', food: 'cake'}const { name, food } = obj;console.log(name, food);// 'Joe' 'cake'如果需要以其他名称来提取属性,可以使用以下格式来指定它们。const obj = { ...原创 2019-12-15 09:37:40 · 835 阅读 · 0 评论 -
详解es6中Proxy代理对象的作用
在es6中新添加了Proxy,那么它有什么作用啊?Proxy本意为代理,而es6中的Proxy也就是代理对象,那么代理对象感觉听起来很模糊,在这里就解释一下Proxy代理对象的作用。Proxy的主要作用就是可以对 对象进行拦截,以及对数据读取、修改的过滤保护。我们先利用es3的方式来实现一个需求,现有一数据,内部有name、age、sex三个属性,name、age属性可读可写,但是sex属性只...原创 2019-04-14 21:56:54 · 1824 阅读 · 1 评论 -
什么是深拷贝和浅拷贝以及利用递归实现深拷贝
因为有面试的小伙伴问到什么是深拷贝和浅拷贝,以及怎么用代码实现?我们先来说一下浅拷贝:var a = 1;var b = a;console.log(b)// 输出结果为1这就是浅拷贝但是浅拷贝会存在一个问题,我们可以通过代码来看一下var obj = { a:1};var b = obj;console.log(b)我们上面通过浅拷贝拷贝了一个引用类型,如果我们去...原创 2019-03-24 15:54:35 · 1015 阅读 · 1 评论 -
js打乱数组的几种方法
今天有小伙伴问到,数组打乱都有什么方法,那么打乱数组有太多的方法了,我这里简单的说三种利用sort排序方式打乱数组var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]var randomNumber = function(){ // randomNumber(a,b) 返回的值大于 0 ,则 b 在 a 的前边...原创 2019-03-03 09:40:32 · 14216 阅读 · 0 评论 -
es6属性基础教学,30分钟包会
title: es6属性基础教学,30分钟包会date: 2017-04-21 22:51:15tags:es6js摘要:看完此文包会es6,不会我吃翔ES6基础智商划重点在实际开发中,ES6已经非常普及了。掌握ES6的知识变成了一种必须。尽管我们在使用时仍然需要经过babel编译。ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大。值得高兴的是,如果你熟悉ES...转载 2019-03-02 09:47:46 · 413 阅读 · 0 评论