
JavaScript高阶
文章平均质量分 78
js的高阶
_洋
一起学习吧
展开
-
js的执行机制 — 事件循环机制
因为JavaScript是单线程的,单线程意味着所有任务需要排队执行。但是有一些API(比如:定时器和Ajax等)是需要等待一定的时间才能得到结果的,如果它们按顺序执行,会造成很大的效率问题。因此,JavaScript采取了。,都会交给浏览器或Node.js进行挂起,等同步代码执行完毕后再执行异步操作。事件循环机制是js的一种执行机制,他是一种可以。原创 2024-03-27 17:29:44 · 1112 阅读 · 0 评论 -
js常见的异步编程和异步编程的处理方法
这种顺序执行的方式很容易理解,也很容易编写代码,但是有个明显的缺点:无法充分利用计算机资源,当遇到需要大量时间的操作时(如I/O操作),CPU就会处于空闲状态。的编程方式,通过使用异步编程,可以避免因为等待慢操作(如读写文件、访问数据库或网络请求)而浪费CPU的时间,提高程序执行效率。常规逻辑下,异步编程执行完之后我们需要根据异步编程的结果处理一些内容,称之为异步编程的解决方法,常见的处理方法有。这是一种常见的在浏览器环境中处理异步操作的方式,例如处理用户的点击事件、键盘事件等。原创 2024-03-27 16:53:24 · 738 阅读 · 0 评论 -
线程机制与事件机制
文章目录进程与线程进程线程进程和线程之间的关系相关问题多进程与多线程单线程与多线程运行的区别JS是单线程还是多线程浏览器是单线程还是多线程浏览器是单进程还是多进程浏览器内核定义组成内核的不同模块定时器JS单线程执行的验证alert代码分类js引擎执行代码的基本流程为什么js设置为单线程事件循环模型相关概念执行栈浏览器内核回调队列(callback queue)事件轮询 event loop请求响应H5 Web Workers(多线程)单线程问题WebWorks介绍WebWorks使用图解分线程的作用分线程缺原创 2022-04-28 15:29:11 · 1277 阅读 · 0 评论 -
小细节笔记
原型链与作用域链查找变量的时候从作用域链查找查找属性的时候从原型链中查找eg: a.b:从作用域链中查找a,从a得原型链中查找bwindow.a 和 a得区别通常我们说如果只写一个a就是再window中找a,单数如果a没有定义window.a 和 a还是有区别的:window.a : 返回 undefineda:报错eg: console.log(window.a) console.log(a)输出:...原创 2022-04-28 08:25:01 · 225 阅读 · 0 评论 -
内存溢出与内存泄露
文章目录内存溢出与内存泄露内存溢出内存泄露内存溢出与内存泄露内存溢出是一种程序运行出现的错误当程序运行需要的内存超过了剩余的内存时,就出抛出内存溢出的错误eg: var obj={} for (var i = 0; i < 10000; i++) { obj[i]=new Array(10000000) }运行结果查看此过程内存内存泄露内存泄露就是:占用的内存没有及时释放内存泄露积累多了就容易导致内存原创 2022-04-28 08:02:24 · 372 阅读 · 0 评论 -
闭包的介绍——JS
文章目录引例闭包的定义闭包初始闭包定义闭包产生的条件常见的闭包将函数作为另一个函数的返回值将函数作为实参传递给另一个函数调用闭包的作用应用两个问题闭包的声明周期闭包应用自定义JS模块闭包的缺点缺点解决内存溢出与内存泄露内存溢出内存泄露习题:引例实现功能:3个按钮,点击按钮显示是第几个按钮。实现:<body> <button>button1</button> <button>button2</button> <b原创 2022-04-28 07:58:11 · 469 阅读 · 0 评论 -
继承模式——JS
文章目录继承模式首先思考如何能够看到 Supper的showSupperPop方法继承模式 // 父类型 function Supper (){ this.supProp = 'Supper property' } Supper.prototype.showSupperPop = function (){ console.log(this.supProp) } //原创 2022-04-27 20:30:54 · 224 阅读 · 0 评论 -
对象高级 ——JS
文章目录对象创建模式方式一:object构造函数模式方式二:对象字面量模式方法三:工厂模式对象创建模式方式一:object构造函数模式套路:先创建空object对象,再动态添加属性/方法适用场景:起始时不确定对象内部数据eg: var p = new Object() p.name = 'Tom' p.age = 12 p.setName = function (name){ this.name = name原创 2022-04-27 16:20:29 · 176 阅读 · 0 评论 -
使用var声明的变量和直接赋值并未声明的变量的区别
使用var声明的变量 和 直接赋值并未声明的变量的区别:在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量。因为不加var就相当于:window.变量名 = 变量值使用var 定义变量会提升变量声明,不加var定义的变量不会提升声明。在全局作用域下,使用var定义的变量不可以delete,没有var 定义的变量可以delete.也就说明隐含全局变量严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过delete删除,而变量不可以。在ES5的’use strict转载 2022-04-26 20:28:41 · 508 阅读 · 0 评论 -
作用域与作用域链
文章目录作用域定义作用域的分类作用域的个数作用域的作用作用域与执行上下文区别产生时机的不同动静态区别联系作用域链定义变量的查找题目题1题2作用域定义作用域就是一块地盘,一个代码段所在的区域。它是静态的(相对于执行上下文),在编写代码的时候作用域就确定了。作用域的分类全局作用域:变量全局可见函数作用域:变量函数内可见没有块作用域:(但是在ES6之后有了)块作用域即大括号作用域,即在大括号内定义的变量,大括号外不可见,但是JS没有块作用域eg: if(true){原创 2022-04-26 13:03:03 · 315 阅读 · 0 评论 -
执行上下文与执行上下文栈
文章目录变量提升与函数提升变量声明提升函数声明提升函数提升和变量提升的先后书顺序代码分类执行上下文全局执行上下文函数执行上下文执行上下文栈引例执行上下文数目执行上下文的管理——执行上下文栈特点题目题1题2变量提升与函数提升变量声明提升通过var定义(声明)的变量,在定义语句之前就可以访问到,但是值是: undefinedeg: console.log(b) var b =3;输出:undefined函数声明提升通过function声明的函数,在定义之前就可原创 2022-04-25 21:11:40 · 554 阅读 · 0 评论 -
原型与原型链——JS
文章目录原型对象原型对象获取:函数的prototype属性给原型对象添加属性(一般都是方法)原型对象和函数对象的关系原型对象的作用显示原型与隐式原型基本含义内部结构原型对象原型对象获取:函数的prototype属性每个函数都有一个prototype属性,它默认指向一个Object空对象,即称为:原型对象eg: function fun (){ } console.log(fun.prototype,typeof fun.prototype)原创 2022-04-25 16:43:25 · 786 阅读 · 0 评论 -
函数的介绍——JS
文章目录函数概念使用函数的优点定义函数调用(执行)函数回调函数回调函数的定义回调函数的分类IIFE定义优点函数中的this补充:关于加不加分号的问题函数概念实现特定功能的n条语句的封装体只有函数是可以执行的,其它类型的数据不能执行使用函数的优点提高代码复用便于阅读交流定义函数函数声明表达式 // 函数声明 function showInfo(age){ if(age<18){ console.lo原创 2022-04-24 19:51:09 · 288 阅读 · 0 评论 -
对象的介绍——JS
文章目录1.什么是对象2.为什么要用对象3.对象的组成4.如何访问对象内部数据必须使用[ ′属性名]的情况1.什么是对象多个数据的封装体用来保存多个数据的容器一个对象代表现实中的一个事物2.为什么要用对象统一管理多个数据3.对象的组成属性:属性名(字符串)和属性值组成。name:'jack' 实际上就是 'name':'jack',两种写法都可以方法:一种特别的属性,属性值是函数的属性。eg: var obj={ name:'jack原创 2022-04-24 14:34:54 · 131 阅读 · 0 评论 -
数据、变量和类型——JS
文章目录1. 什么是数据?2. 什么是内存?3. 什么是变量?4.内存、数据、变量三者之间的关系问题变量的赋值引用变量的赋值在js调用函数时传递变量参数时是值传递JS管理内存1. 什么是数据?存储在内存中代表特定信息的介质,本质上是0101…数据的特点:可传递,可运算一切皆数据内存中所有操作的目标:数据可进行的数据操作:算术运算逻辑运算赋值运行函数2. 什么是内存?内存条通电后产生的可储存数据的空间(临时的)内存产生和死亡:内存条(电路板) ==>通电 ==&g原创 2022-04-24 14:02:30 · 278 阅读 · 0 评论 -
数据类型——JS高级
文章目录数据类型分类数据类型的判断基本数据类型的类型判断typedef\=\=\= / ==(全等于/等于)对象类型的类型判断instanceoftypedef补充:函数的嵌套小问题1.undefined与null的区别2. 什么时候赋值为null3. 严格区别变量类型与数据类型?数据类型分类基本(值)类型String:任意字符串Number:任意的数字booLean: true/falseundefined: undefinednull: nuLL对象(引用)类型object:原创 2022-04-24 09:43:51 · 579 阅读 · 0 评论