自定义博客皮肤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)
  • 收藏
  • 关注

原创 <audio>标签 “timeupdate“属性调用卡顿的问题记录

问题背景及描述在用vue写网页播放器的时候用了隐藏<audio>+element-ui组件的组合方式,过程中需要实现播放时间的同步。发现通过timeupdate事件处理相关逻辑会导致音频卡顿。问题解决尝试节流(不是问题根源)通过节流来解决问题,以1s为长度// 节流方法timer(callback, time) { let clock = null; return function () { if (!clock) { clock = setTimeout(() =&

2021-03-24 19:33:28 1210

原创 第十七章:事件

第十七章:事件17.1 事件流描述了页面接收事件的顺序17.1.1 冒泡事件17.1.2 事件捕获17.1.3 DOM 事件流事件流的三个阶段:事件捕获、到达事件、事件冒泡17.2 事件处理程序17.2.1 HTML 事件处理程序17.2.2 DOM0 事件处理程序let btn = document.getElementById("myBtn");btn.onclick = function () { console.log("Clicked");};17

2021-03-04 13:30:38 158 1

原创 第十五章:DOM 扩展

第十五章:DOM 扩展15.1 Selectors API15.1.1 querySelector()let body = document.querySelector("body");let mydiv = document.querySelector('#myDiv');let myClass = document.querySelector('.myClass');15.1.2 querySelectorAll()返回所有匹配的节点返回的是一个 NodeList 静态实例

2021-03-02 16:35:23 173

原创 第十四章:DOM

第十四章:DOM14.1 节点层级文档元素:html14.1.1 Node 类型nodeTypeNode.ELEMENT_NODE:1Node.ATTRIBUTE_NODE:2Node.TEXT_NODE:3Node.CDATE_SECTION_NODE:4Node.ENTITY_REFERENCE_NODE:5Node.ENTITY_NODE:6Node.PROCESSING_INSTRUCTION_NODE:7Node.COMMENT_NODE:8Node.DOCUME

2021-03-02 15:08:34 131

原创 第十二章:BOM

第十二章 BOM12.1 window 对象BOM 的核心,表示浏览器的实例有两重身份:Global 对象浏览器窗口的 JavaScript 接口12.1.1 Global 作用域所有通过 var 声明的全局变量和函数都会成为 window对象的属性和方法12.1.2 窗口关系top对象:指向最外层窗口,即浏览器窗口本身parent对象:指向当前窗口的父窗口,最外层窗口的 paent 等于 topself对象:指向 window12.1.3 窗口位置与像素比sc

2021-03-01 16:26:20 78

原创 第十一章:Promise 与异步函数

第十一章:Promise 与异步函数11.1 异步编程11.1.1 同步与异步11.1.2 以往的异步编程模式回调地狱1. 异步返回值function double(value, callback) { setTimeout(() => callback(value * 2), 1000);}double(3, (x) => console.log(x)); // 6 大约 1000ms 后2. 失败处理function double(value,

2021-03-01 14:32:00 253

原创 第十章:函数

第十章:函数函数实际上是对象( Function的实例)函数名是指向函数对象的指针10.1 箭头函数(ES6)不能使用 arguments,super和 new.target,也不能用作构造函数没有 prototype属性10.2 函数名函数名是指向函数对象的指针function test() { console.log(123);}test(); // 123const another = test;another();

2021-02-28 15:15:41 107

原创 第九章:代理与反射

第九章:代理与反射9.1 代理基础代理是目标对象的抽象9.1.1 创建空代理const target = { id: "target"};const handler = {};const proxy = new Proxy(target, handler);console.log(proxy.id); // targetproxy.id = "foo";console.log(target.id); // fooco

2021-02-28 10:43:44 93

原创 第八章:对象、类与面向对象编程

第八章:对象、类与面向对象编程8.1 理解对象new一个对象的时候发生了什么8.1.1 属性的类型通过两个中括号访问内部特性1. 数据属性数据属性包含一个保存数据值的位置有 4 个特性描述它们的行为[[Configurable]]:表示属性是否可以通过 delete删除并重新定义,是否可以修改其特性,是否可以把它改为访问器属性。默认所有直接定义在对象上的属性均为 true[[Enumerable]]:表示属性是否可以通过 for-in循环返回。默认所有直接定义在对象上的属性均为

2021-02-27 16:33:09 144

原创 第七章:迭代器与生成器

第七章:迭代器与生成器7.1 理解迭代最简单的迭代:for7.2 迭代器模式可迭代对象:包含的元素有限,具有无歧义的遍历顺序不一定是集合对象7.2.1 可迭代协议支持迭代的自我识别创建实现 Iterator 接口的对象的能力7.2.2 迭代器协议next()返回值:{ value: any, done: boolean }不同迭代器的实例之间没有联系对可迭代对象的修改会体现在迭代器上// Test 类实现了可迭代接口(Iterable)// 调用默认的迭代器

2021-02-26 15:19:50 143

原创 第六章:集合引用类型

第六章:集合引用类型6.1 Object使用字面量表示法定义对象时,并不会调用 Object 构造函数字面量表示法:const obj = {};详见第 8 章6.2 Array6.2.1 创建数组使用字面量表示法定义对象时,并不会调用 Array 构造函数ES6 增加 Array.from():也可以传入字符串ES6 增加 Array.of():将一组参数转换为数组console.log(Array.from("1234", x => x *= x)); //

2021-02-24 16:11:57 176

原创 第五章:基本引用类型

第五章:基本引用类型引用值是某个特定引用类型的实例引用类型是把数据和功能组织到一起的结构,也称为“对象定义”对象被认为是某个特定引用类型的实例新对象通过 new 操作符后跟一个构造函数创建5.1 Date时间起点:1970.1.1 00:00Date.parse()接收表示日期的字符串,转换为毫秒数Date.UTC()接收各单位的数字,转换为毫秒数年,月是必需的。日默认为 1 ,其他为 01月为 0 ,以此类推Date.now()返回当前时间的毫秒数5.1.

2021-02-23 16:08:10 105

原创 第四章:变量、作用域与内存

第四章:变量、作用域与内存4.1 原始值和引用值原始值:最简单的数据,存储在栈内存引用值:由多个值构成的对象,存储在堆内存回顾第三章六种原始值,直接操作存储在变量中的实际值:UndefinedNullBooleanNumberStringSymbol引用值:保存在内存中的对象,不能直接修改,操作的是对该对象的引用4.1.1 动态属性引用值:可以随时添加、删除、修改其属性和方法原始值没有属性4.1.2 复制值通过变量将原始值赋值给另一变量:互不干扰把

2021-02-21 16:40:01 125

原创 第三章:语言基础

第三章:语言基础3.1 语法3.1.4 严格模式"use strict";function doSomething() { "use strict"; // do something}3.3 变量3.3.1 var 关键字不初始化的情况下,变量值为 undefinedvar a;console.log(a); // output: undefineda = 1;console.log(a); // output: 1var 声明作用域1.1 使用 v

2021-02-21 14:48:43 106 1

原创 第二章:HTML中的JavaScript

第二章:HTML中的JavaScript2.1 <script>元素<script>元素部分属性:async:表示应该立即开始下载脚本,但不能阻止其他页面动作。只对外部文件有效。defer:标是脚本可以延迟到文档完全被解析和显示后再执行。只对外部文件有效。2.1.4 动态加载脚本let script = document.createElement('script');script.src = 'test.js';document.head.appendCh

2021-02-21 08:49:32 80

原创 第一章:什么是 JavaScript

第一章:什么是 JavaScript1.1 简短的历史回顾JavaScript 和 java 没有任何关系。1.2 Javascript 的实现完整的 JavaScript 包括:核心(ECMAScript):由 ECMA-262 定义并提供核心功能文档对象模型(DOM):提供与网页内容交互的方法和接口浏览器对象模型(BOM):提供与浏览器交互的方法和接口1.2.1 ECMAScriptECMAScript,即 ECMA-262 定义的语言。其定义了该语言的:语法类型

2021-02-20 14:23:48 66

空空如也

空空如也

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

TA关注的人

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