自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 继承的补充

一个月前写的原型与原型链。那时还只是刚明白了__proto__与prototype之间的关系。 因此那时对于继承的认知是不够的。所以对于继承来说,我还需要继续总结。(在过了一个月后。。。)es6之前的继承首先是prototype 和 __proto__ . 我发现即使我记住了原型链图。 但是我发现当使用Object.getPrototypeOf()、Object.setPrototypeOf(). 这些方法时,我还是捋不清其中的联系。因此还是要具体了解这两个东西是干什么用的。proto .

2021-10-08 14:13:39 96

原创 class继承

基本包装类型toString() 和 valueOf()

2021-10-07 20:03:51 109

原创 Generator与 async

Generator(状态机,封装了多个内部状态.通过next方法获取)也是es6提供的一种异步编程解决方案.内部因为yield的存在 , 所以可以封装多个内部的状态 .其具有惰性求值的特点. 函数调用时并不会执行. 而是调用next方法去执行内部的状态.相似于return , 但又不同于return语句:都返回紧跟在语句后的表达式的值.return只能执行一次. 且不具备记忆的功能.而yield可以执行多次,每次next方法,都是从上次yield的位置执行.yield语句只能用在 Gen

2021-10-06 22:05:43 188

原创 Promise

Promise(承诺)promise对象(是一个容器)中通常会包含异步操作 . 其实现了异步操作和异步结果处理的分离. 其有两个特点:对象的状态不受外界影响. promise初始为pending状态. 但异步请求成功, 会调用resolve() , 状态变为fulfilled(已成功) ; 请求失败 , 会调用reject() , 状态变为rejected(已失败) . 只有异步操作的结果 , 可决定当前是哪种状态 . 外部是无法影响的.一旦状态改变 , 就不会再变. 任何时候都可以得到这个结果

2021-10-06 19:53:44 103

原创 宏任务与微任务

JS是一门单线程语言. 一个进程中只有一个主线程。进程与线程:进程是CPU资源分配的最小单位 。 线程是CPU调度的最小单位 。可以有多个进程,一个进程可以有多个线程。多个进程之间独立存在,多个线程共享所在进程的资源。多进程: 打开qq和微信 。 可以同时通过qq和微信发送信息 。qq和微信是独立存在的。多线程: 打开一个页面。 会有浏览器渲染线程、JS 引擎线程、HTTP 请求线程等等。浏览器内核(渲染引擎)是 多线程,在内核控制下各线程相互配合以保持同步GUI渲染线程:

2021-10-06 17:02:04 184

原创 浅拷贝与深拷贝

浅拷贝与深拷贝只针对引用类型。而对于值类型谈不上。拷贝就是新建一个空间。将一个对象中的数据拷贝到另一个对象。浅拷贝。对于原数据中的引用类型,会直接把它的地址拷贝(这样会和被拷贝对象的引用类型指向同一空间)深拷贝。对于原数据中的引用类型,会开辟新的空间,把它的值进行拷贝。(这样会和被拷贝对象的引用类型指向不同空间)对于第一层来说深拷贝,下层就是浅拷贝。(因为第一层,数据本身就是引用类型,所以会开辟新的空间。但下层,对于其中的引用类型被没有去继续开辟新空间,而是地址的拷贝。) // obje

2021-09-17 15:00:23 53

原创 Object的API(MDN)

Object描述 :JS中基本所有的对象都是Object类型的实例,它们都会从Object.prototype继承属性和方法。Object构造函数,会根据给定的参数创建对象 // 如果给定值是 null 或 undefined,将会创建并返回一个空对象 let obj = new Object(null); console.log(obj); // 传进去的是一个基本类型的值,则会构造**其包装类型的对象** let obj1 = new Object(12)

2021-09-16 17:28:31 536

原创 数组常用的API(MDN)

Array()构造器对于函数的定义而言,我感觉可以从函数的描述去理解记忆。函数所封装的功能往往就是其描述的内容。数组字面量创建 let arr = [1,2]; console.log(arr.length);// 2 console.log(arr[0]); // 1单个参数的Array()构造器 let arr = new Array(3); console.log(arr.length); //3 console.log(arr[1]); //u

2021-09-15 22:04:19 611

原创 网络模型笔记

OSI七层网络模型 是ISO组织在1985年研究的网络互连模型。 目的就是推荐所有公司使用这个规范来控制网络,这样所用公司就有相同的规范,就能**互联**了。--- 互联网实现两台机器互联,机器与机器间如何通信?(需求, 引入物理层)物理层 .互联物理链路,物理介质。网线(双绞线),光纤,无线电波—基本的连接。形式存在—0101二进制,电信号(比特流)010101比特流是没有含义的数据,如何变成有意义的数据?且知道数据发送到什么地方?(引入数据链路层)数据链路层比特.

2021-09-15 11:35:10 64

原创 call,apply与bind

call、apply与bind(Function.prototype中的属性)call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。function.call(thisArg, arg1, arg2, …)参数 :thisArg. 可选的。在function函数运行时的this值。请注意,this可能不是该方法看到的实际值:如果这个函数处于非严格模式下,则指定为 null 或 undefined 时会自动替换为指向全局对象,原始值会被包装.返回值 : 使用调用者

2021-09-14 10:57:17 146

原创 事件轮询机制

事件循环(轮询)机制js是单线程的所有js代码都是在主线程执行的同步任务进入主线程即会执行异步任务则会进入浏览器的管理模块 (有DOM事件管理模块、ajax请求管理模块、定时器管理模块等)管理模块一直监视异步任务是否满足条件。如果满足条件则会将对应的回调放入回调队列中(callback queue)主线程的同步任务执行完后会通过event loop(事件轮询机制)询问callback queue:如果回调队列中有可执行的回调函数,则将会回调钩到主线程上执行。如果没有则loop对

2021-09-14 08:35:33 2257

原创 垃圾回收机制

垃圾回收机制(GC:Garbage Collection)与内存泄露 JS中有自动垃圾收集机制,执行环境会负责管理代码执行过程中的内存。 机制原理是: 找出不再使用的变量,释放它所占用的内存。垃圾收集器会按固定的时间间隔(代码中预定的收集时间)**周期性**地执行这一操作。标记清除当变量进入环境(在函数中声明一个变量), 将这个变量标记为“进入环境”。当变量离开环境时,将其标为“离开环境”。可以使用任何方式去标记变量。可以用一个“进入环境”的变量列表或者一个“离开环境”的变量列表来跟踪变

2021-09-12 18:34:29 86

原创 原型与原型链(继承)

原型与原型链构造函数的显示原型对象 === 当前构造函数的实例对象的隐式原型对象原型就是一个对象。其目的就是为了给其他对象提供共享数据的对象。 函数对象, 本身是对象,也可以通过对象名()的方式执行函数的功能。 普通对象 , 就是个对象,不能直接对象名()来调用函数。构造函数。c1,c2是Car的实例对象,它们有一个构造器属性(constructor),指向当前的构造函数。 function Car(name) { this.name = name;

2021-09-10 23:56:57 58

原创 闭包的问题

闭包 闭包,字面上理解就是一个闭合的容器。在浏览器查看时,闭包是一个对象 closure {key:value};闭包的条件函数的嵌套内部函数使用外部函数的局部变量外部函数调用(这个是肯定的。因为只有调用了,才有了上下文环境,代码才会执行。)缺点占内存。因为闭包使用了外部函数的局部变量,而外部函数在调用完,按理说会出栈。但由于闭包的存在,所以会延迟外部的局部变量的生命周期。不及时清除闭包会导致内存溢出(因为占内存,闭包多了,内存自然就不够了)如何避免其缺点能不用就

2021-09-10 19:03:09 132

原创 执行上下文与作用域

执行上下文和执行栈执行上下文 字面意思,上下文也就是环境。JS代码运行需要运行环境,也就是需要执行上下文。其又可分为三类。(但eval函数执行上下文,只是知道。)全局执行上下文。默认的执行上下文,只有一个全局的执行上下文(因此其销毁,就是关闭浏览器),任何不在函数内部的代码都是在全局的执行上下文中。其会绑定this 指向 window。函数执行上下文(局部)。每一次函数调用,都会创建一个函数上下文。函数执行完,就会销毁一个上下文,再次调用,则再次创建。执行栈(LIFO,后进先出)

2021-09-10 19:02:11 63

原创 JS的变量类型

变量类型JS的变量类型分类和判断数据类型ECMAScript中有五种简单数据类型(基本数据类型): undefined、null、Boolean、Number、String(ES6引入新的数据类型Symbol、Bigint)。还有一种复杂数据类型—Object(其本质是由一组无序的键值对组成的)。所有值最终都是上述6种数据类型之一。可以用typeof操作符(返回的是字符串格式)来进行数据类型的检测返回值说明“undefined”如果这个值未定义“boolean

2021-09-10 14:07:43 449

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除