JavaScript高级
文章平均质量分 71
JavaScript高级知识
MarxistVive
这个作者很懒,什么都没留下…
展开
-
JSAdvance20-H5 Web Workers(多线程)
JSAdvance20-H5 Web Workers(多线程) 文章目录JSAdvance20-H5 Web Workers(多线程)一、H5规范提供了js分线程的实现, 取名为: Web Workers二、相关API三、不足四、练习-计算斐波那契数列 一、H5规范提供了js分线程的实现, 取名为: Web Workers 二、相关API Worker: 构造函数, 加载分线程执行的js文件 Worker.prototype.onmessage: 用于接收另一个线程的回调函数 Worker.prototy原创 2022-05-27 20:32:29 · 119 阅读 · 0 评论 -
JSAdvance19-事件循环模型
JSAdvance19-事件循环模型 文章目录JSAdvance19-事件循环模型一、所有代码分类二、js引擎执行代码的基本流程:三、模型的2个重要组成部分:四、模型的运转流程 一、所有代码分类 初始化执行代码(同步代码): 包含绑定dom事件监听, 设置定时器, 发送ajax请求的代码 回调执行代码(异步代码): 处理回调逻辑 二、js引擎执行代码的基本流程: 初始化代码===>回调代码 三、模型的2个重要组成部分: 事件(定时器/DOM事件/Ajax)管理模块 回调队列 四、模型的运转原创 2022-05-26 21:47:41 · 103 阅读 · 0 评论 -
JSAdvance18-JS是单线程的
JSAdvance18-JS是单线程的 文章目录JSAdvance18-JS是单线程的一、如何证明js执行是单线程的?二、为什么js要用单线程模式, 而不用多线程模式?三、代码的分类:四、js引擎执行代码的基本流程 一、如何证明js执行是单线程的? setTimeout()的回调函数是在主线程执行的 定时器回调函数只有在运行栈中的代码全部执行完后才有可能执行 二、为什么js要用单线程模式, 而不用多线程模式? JavaScript的单线程,与它的用途有关。 作为浏览器脚本语言,JavaScript的主原创 2022-05-26 21:44:02 · 112 阅读 · 0 评论 -
JSAdvance17-定时器引发的思考
JSAdvance17-定时器引发的思考 文章目录JSAdvance17-定时器引发的思考一、定时器真是定时执行的吗?二、定时器回调函数是在分线程执行的吗?三、定时器是如何实现的? 一、定时器真是定时执行的吗? 定时器并不能保证真正定时执行 一般会延迟一丁点(可以接受), 也有可能延迟很长时间(不能接受) 二、定时器回调函数是在分线程执行的吗? 在主线程执行的, js是单线程的 三、定时器是如何实现的? 事件循环模型(后面讲) <!DOCTYPE html> <html lan原创 2022-05-26 21:43:32 · 115 阅读 · 0 评论 -
JSAdvance16-浏览器内核
JSAdvance16-浏览器内核 什么是浏览器内核? 支持浏览器运行的最核心的程序 不同的浏览器可能不太一样 Chrome, Safari: webkit firefox: Gecko IE: Trident 360,搜狗等国内浏览器: Trident + webkit 内核由很多模块组成 html,css文档解析模块 : 负责页面文本的解析 dom/css模块 : 负责dom/css在内存中的相关处理 布局和渲染模块 : 负责页面的布局和效果的绘制 布局和渲染模块 : 负责页面的布原创 2022-05-26 21:43:01 · 132 阅读 · 0 评论 -
JSAdvance15-进程与线程
JSAdvance15-进程与线程 文章目录JSAdvance15-进程与线程 进程:程序的一次执行, 它占有一片独有的内存空间 线程: CPU的基本调度单位, 是程序执行的一个完整流程 进程与线程 一个进程中一般至少有一个运行的线程: 主线程 一个进程中也可以同时运行多个线程, 我们会说程序是多线程运行的 一个进程内的数据可以供其中的多个线程直接共享 多个进程之间的数据是不能直接共享的 浏览器运行是单进程还是多进程? 有的是单进程 firefox 老版IE 有的是多进程 chrome原创 2022-05-26 21:41:30 · 107 阅读 · 0 评论 -
JSAdvance14-继承模式
JSAdvance14-继承模式 文章目录JSAdvance14-继承模式一、原型链继承二、借用构造函数继承(假的)三、组合继承 一、原型链继承 方式1: 原型链继承 1. 套路 2. 定义父类型构造函数 3. 给父类型的原型添加方法 4. 定义子类型的构造函数 5. 创建父类型的对象赋值给子类型的原型 6. 将子类型原型的构造属性设置为子类型 7. 给子类型原型添加方法 8. 创建子类型的对象: 可以调用父类型的方法 2. 关键 1. 子类型的原型为父类型的一个实例对象 [外链图片转存中…(img-iux原创 2022-05-26 21:40:59 · 107 阅读 · 0 评论 -
JSAdvance13-对象创建模式
JSAdvance13-对象创建模式 文章目录JSAdvance13-对象创建模式一、Object构造函数模式二、对象字面量模式三、工厂模式四、自定构造函数模式五、构造函数+原型的组合模式 一、Object构造函数模式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>01_Object构造函数模式</title> </head>原创 2022-05-26 21:40:31 · 116 阅读 · 0 评论 -
JSAdvance12-闭包
JSAdvance12-闭包 文章目录JSAdvance12-闭包一、引入二、理解闭包2.1 如何产生闭包?2.2 闭包到底是什么?2.3 产生闭包的条件?三、闭包的作用四、闭包的生命周期五、闭包的应用六、内存溢出和内存泄露七、闭包的缺点及解决八、练习 一、引入 需求: 点击某个按钮, 提示"点击的是第n个按钮" <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <tit原创 2022-05-26 21:39:53 · 117 阅读 · 0 评论 -
JSAdvance11-作用域与作用域链
JSAdvance11-作用域与作用域链 文章目录JSAdvance11-作用域与作用域链一、作用域1.1 理解1.2 分类1.3 作用二、作用域与全局上下文2.1 区别13.2 区别23.3 联系三、作用域链3.1 理解3.2 查找一个变量的查找规则四、练习 一、作用域 1.1 理解 就是一块"地盘", 一个代码段所在的区域 它是静态的(相对于上下文对象), 在编写代码时就确定了 1.2 分类 全局作用域 函数作用域 没有块作用域(ES6有了) 1.3 作用 隔离变量,不同作用域下同名变量不会有原创 2022-05-26 21:38:41 · 111 阅读 · 0 评论 -
JSAdvance10-执行上下文与执行上下文栈
JSAdvance10-执行上下文与执行上下文栈 文章目录JSAdvance10-执行上下文与执行上下文栈一、变量提升与函数提升1.1 变量声明提升1.2 函数声明提升1.3 问题: 变量提升和函数提升是如何产生的?二、执行上下文2.1 代码分类(位置)2.2 全局执行上下文2.3 函数执行上下文2.4 执行上下文栈2.5 练习 一、变量提升与函数提升 1.1 变量声明提升 通过var定义(声明)的变量, 在定义语句之前就可以访问到 值: undefined 1.2 函数声明提升 通过function原创 2022-05-26 21:37:38 · 127 阅读 · 0 评论 -
JSAdvance09-原型与原型链
JSAdvance09-原型与原型链 文章目录JSAdvance09-原型与原型链一、原型1.1 函数的prototype属性(图)1.2 给原型对象添加属性(一般都是方法)二、显式原型与隐式原型2.1 每个函数function都有一个prototype,即显式原型(属性)2.2 每个实例对象都有一个\_\_proto\_\_,可称为隐式原型(属性)2.3 对象的隐式原型的值为其对应构造函数的显式原型的值2.4 内存结构(图)2.5 总结:三、原型链3.1 原型链(图解)3.2 构造函数/原型/实体对象的关原创 2022-05-26 21:26:50 · 110 阅读 · 0 评论 -
JSAdvance08-分号问题
JSAdvance08-分号问题 文章目录JSAdvance08-分号问题 js一条语句的后面可以不加分号 是否加分号是编码风格问题, 没有应该不应该,只有你自己喜欢不喜欢 在下面2种情况下不加分号会有问题 小括号开头的前一条语句 中方括号开头的前一条语句 解决办法: 在行首加分号 强有力的例子: vue.js库 vue.js库 知乎热议: https://www.zhihu.com/question/20298345 <!DOCTYPE html> <html lang="e原创 2022-05-25 15:21:46 · 111 阅读 · 0 评论 -
JSAdvance07-函数中的this
JSAdvance07-函数中的this 文章目录JSAdvance07-函数中的this一、this是什么?二、如何确定this的值? 一、this是什么? 任何函数本质上都是通过某个对象来调用的,如果没有直接指定就是window 所有函数内部都有一个变量this 它的值是调用函数的当前对象 二、如何确定this的值? test(): window p.test(): p new test(): 新创建的对象 p.call(obj): obj <!DOCTYPE html> <h原创 2022-05-25 15:18:01 · 106 阅读 · 0 评论 -
JSAdvance06-IIFE(立即执行函数)
JSAdvance06-IIFE(立即执行函数) 文章目录JSAdvance06-IIFE(立即执行函数)一、理解二、作用 一、理解 全称: Immediately-Invoked Function Expression 二、作用 隐藏实现 不会污染外部(全局)命名空间 用它来编码js模块 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>06原创 2022-05-25 15:17:30 · 92 阅读 · 0 评论 -
JSAdvance05-回调函数
JSAdvance05-回调函数 文章目录JSAdvance05-回调函数一、什么函数才是回调函数?二、常见的回调函数? 一、什么函数才是回调函数? 1). 你定义的 2). 你没有调 3). 但最终它执行了(在某个时刻或某个条件下) 二、常见的回调函数? dom事件回调函数 ==>发生事件的dom元素 定时器回调函数 ===>window ajax请求回调函数(后面讲) 生命周期回调函数(后面讲) <!DOCTYPE html> <html lang="en"原创 2022-05-25 15:16:54 · 111 阅读 · 0 评论 -
JSAdvance04-函数
JSAdvance04-函数 文章目录JSAdvance04-函数一、什么是函数?二、为什么要用函数?三、如何定义函数?四、如何调用(执行)函数? 一、什么是函数? 实现特定功能的n条语句的封装体 只有函数是可以执行的, 其它类型的数据不能执行 二、为什么要用函数? 提高代码复用 便于阅读交流 三、如何定义函数? 函数声明 表达式 四、如何调用(执行)函数? test(): 直接调用 obj.test(): 通过对象调用 new test(): new调用 test.call/apply(ob原创 2022-05-25 15:16:26 · 117 阅读 · 0 评论 -
JSAdvance03-对象
JSAdvance03-对象 文章目录JSAdvance03-对象一、什么是对象?二、为什么要用对象?三、对象的组成四、如何访问对象内部数据?五、什么时候必须使用['属性名']的方式? 一、什么是对象? 多个数据的封装体 用来保存多个数据的容器 一个对象代表现实中的一个事物 二、为什么要用对象? 统一管理多个数据 三、对象的组成 属性: 属性名(字符串)和属性值(任意)组成 方法: 一种特别的属性(属性值是函数) 四、如何访问对象内部数据? .属性名: 编码简单, 有时不能用 [‘属性名’]:原创 2022-05-25 15:15:39 · 102 阅读 · 0 评论 -
JSAdvance02-数据变量内存
JSAdvance02-数据变量内存 文章目录JSAdvance02-数据变量内存一、什么是数据?二、什么是内存?三、什么是变量?四、内存,数据, 变量三者之间的关系五、var a = xxx, a内存中到底保存的是什么?六、关于引用变量赋值问题七、在js调用函数时传递变量参数时, 是值传递还是引用传递八、 JS引擎如何管理内存? 一、什么是数据? 存储在内存中代表特定信息的’东东’, 本质上是0101… 数据的特点: 可传递, 可运算 一切皆数据 内存中所有操作的目标: 数据 算术运算 逻辑运算 赋值原创 2022-05-25 15:15:06 · 111 阅读 · 0 评论 -
JSAdvance01-数据类型
JSAdvance01-数据类型 文章目录JSAdvance01-数据类型一、分类二、判断三、undefined与null的区别?四、什么时候给变量赋值为null呢?五、严格区别变量类型与数据类型? 一、分类 基本(值)类型 String: 任意字符串 Number: 任意的数字 boolean: true/false undefined: undefined null: null 对象(引用)类型 Object: 任意对象 Function: 一种特别的对象(可以执行),普通对象存储的一般是数据原创 2022-05-25 15:14:36 · 159 阅读 · 0 评论