
JavaScript
文章平均质量分 70
花铛
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据交换格式 JSON
JSON:JavaScript Object Notation(JavaScript 对象表示法),是一种轻量级的数据交换格式。JSON 一般都会放在一个专门的以.json结尾文件中。不允许注释。字符串必须用双引号括起来。不支持 undefined 类型。JSON 是 Ajax 在前后端发送和接收数据的其中一种格式。其他格式还有,例如:XML、名值对等。......原创 2019-03-13 11:28:29 · 437 阅读 · 0 评论 -
JavaScript 中的模块化
将程序划分成一个个小的结构,在每个结构中编写属于自己的逻辑代码。每个结构有自己独立的作用域,定义变量名不会影响到其他的结构;可以暴露变量、函数、对象等给其他结构使用;也可以导入其他结构的变量、函数、对象等。这种结构就是模块。按照这种结构划分程序进行开发的过程,就是模块化开发。原创 2021-03-30 09:45:18 · 554 阅读 · 0 评论 -
JavaScript 的二进制家族三
Base64 是一种数据编码方式,基于 64 个可打印字符来表示二进制数据。也就是说选出 64 个字符作为一个基本字符集,然后其他所有符号都转换成这个字符集中的字符。64 个字符包括小写字母a-z、大写字母A-Z、数字0-9、符号"+“、”/",再加上作为垫字的 “=”,实际上是 65 个字符。原创 2023-11-30 14:25:13 · 559 阅读 · 0 评论 -
event-bus 事件总线
event-bus,跨文件、跨组件进行通信。原创 2023-04-26 11:40:46 · 97 阅读 · 0 评论 -
《十八》浏览器的渲染引擎
渲染引擎用来解析 HTML 和 CSS,渲染网页。渲染引擎用来渲染页面,JS 引擎用来执行 JS。原创 2020-04-03 18:23:50 · 1372 阅读 · 0 评论 -
异步处理方案
异步处理方案的进程:回调函数 --> Promise --> async/await。原创 2023-04-17 10:21:59 · 121 阅读 · 0 评论 -
《七》JavaScript 中使用 new 构造函数创建对象和实现继承
ES5 中是用构造函数去模拟类,构造函数名需要大写。通过new 构造函数来创建对象。原创 2023-03-18 14:18:41 · 896 阅读 · 0 评论 -
《十四》JavaScript 中的严格模式
JavaScript 不断向前发展并且没有带来任何兼容性的问题。新的特征被加入,旧的功能也没有改变,这么做有利于兼容旧代码;但是 JavaScript 创造者的任何错误或者不完善的决定也将永远被保留在 JS 这门语言中。在 ES5 标准中,JS 提出了严格模式(Strict Mode)的概念。严格模式是一种具有限制性的 JS 模式,从而使代码隐式地脱离了懒散模式(Sloppy Mode)。支持严格模式的浏览器在检测到代码中开启了严格模式后,会以严格的方式对代码进行检测和执行。原创 2023-03-15 18:42:34 · 257 阅读 · 0 评论 -
《十九》浏览器的 JS 引擎
JS 引擎对 JS 代码的处理包括解析和执行两个阶段。JS 代码的解析和执行并不是一次性完成的,而是交替进行的;当 JS 引擎执行代码时,它可能需要解析新的代码;反之,当它在解析阶段时,也可能会执行一些代码。因为计算机是不能直接识别 JS 这种高级语言的,只能识别机器语言,所以需要 JS 引擎来将其翻译成机器语言。原创 2023-03-04 14:28:26 · 616 阅读 · 0 评论 -
服务端渲染和客户端渲染、多页应用和单页应用、后端路由和前端路由
任何一个技术的出现都不是凭空产生的,一定是为了解决原有技术上的痛点。原创 2020-12-22 10:01:08 · 682 阅读 · 0 评论 -
《五》JavaScript 中对象属性的类型:数据属性和访问器属性
JS 中对象的属性有两种类型:数据属性和访问器属性。一个属性要么为数据属性,要么为访问器属性,不能既是数据属性又是访问器属性,会抛出错误。原创 2023-01-31 12:00:29 · 983 阅读 · 0 评论 -
《十三》JavaScript 中的错误处理
在 JavaScript 中,发生错误会导致后续的代码全都不能执行,因此,产生代码错误是一件非常危险的事。原创 2022-11-19 22:27:20 · 1387 阅读 · 1 评论 -
JavaScript 的二进制家族二
Web API:是浏览器提供的一组 API,不是 JavaScript 语言的一部分,而是由浏览器厂商实现的浏览器功能扩展。实现可能会有一些差异,需要开发者根据浏览器的不同进行兼容性处理。JavaScript 内置 API:是指标准 ECMAScript 规范中定义的一组 API,API 包括基本数据类型、函数、对象、数组、字符串处理等,这些 API 是所有支持 ECMAScript 的环境都应该实现的,包括浏览器环境和 Node.js 等服务器端环境。原创 2022-03-18 09:27:34 · 560 阅读 · 0 评论 -
对象的创建模式与继承模式
{}原创 2022-03-03 17:52:05 · 131 阅读 · 0 评论 -
【数值】生成不重复的随机数、浮点数加减乘除精度丢失
基本思路都是将浮点数转换为整数再进行运算。原创 2021-07-13 09:38:17 · 218 阅读 · 0 评论 -
【数组】数组求和、数组求最大值、数组去重、数组分组、是否为质数
var arr = [1,2,3,4,5,4,3,2,1];求数组项之和:var sum = arr.reduce(function(pre,curr){ return pre+curr;});alert(sum);//25求数组项的最大值:var max = arr.reduce(function(pre,curr){ return Math.max(pre,curr);}...原创 2019-06-18 17:13:37 · 347 阅读 · 0 评论 -
【字符串】字符串去除空格、string 类型的 true、false转换为 boolean类型
str.trim() 方法:str.trim():去除字符串两端的空白字符并返回一个新的字符串,不会影响原来的字符串本身。str.trimLeft():去除字符串左侧开头的空白字符串。str.trimRight():去除字符串右侧结尾的空白字符串。let str = ' a b c 'let str1 = str.trimLeft()console.log(str1) //'a b c 'replace() 正则匹配方法:str.replace(/\s*/g, ‘’):去除字符串中的所有空原创 2021-05-26 16:07:48 · 508 阅读 · 0 评论 -
JavaScript 的二进制家族一
历史上 JavaScript 是没有读写二进制数据能力的,但随着 ES5 中 Blob 对象的引入以及 ES6 中 ArrayBuffer 对象、TypedArray 和 DataView 对象的规范化, JS 处理二进制数据的能力大幅度增强,也能直接处理文件流,网络流等二进制 Buffer 数据了。原创 2021-04-12 14:55:48 · 2326 阅读 · 0 评论 -
Chrome66 禁止声音自动播放的解决方法
Chrome66 禁止声音自动播放,也就是说。用户还没有交互,不能调用。在桌面版浏览器无效。原创 2020-03-24 11:12:10 · 1925 阅读 · 2 评论 -
面向对象编程与函数式编程(FP,functional programming)
面向对象编程和函数式编程都是编程模式。JavaScript 既支持面对对象编程,也支持函数式编程。原创 2020-04-26 11:43:24 · 1113 阅读 · 0 评论 -
一次性插入多个节点,如何优化 DOM 操作的性能?
创建一个 DocumentFragment 对象,该对象并不是真实 DOM 树的一部分,而只是存在于内存中。最常用的方法就是当要向 document 中添加大量节点时,就可以创建一个文档碎片,把所有的新节点附加其上,然后把文档碎片一次性添加到 document 中。创建一个文档碎片,把所有的新结点附加在其上,然后把文档碎片的内容一次性添加到页面中,减少页面渲染 Dom 的次数。原创 2020-04-13 11:20:13 · 1569 阅读 · 0 评论 -
《十六》JavaScript 中的线程机制与事件机制
JS 作为浏览器的脚本语言,主要用来实现与用户的交互以及操作 DOM,如果 JS 是多线程的话,会带来很严重的同步问题。例如:一个线程要在一个 DOM 节点中增加内容,另一个线程要删除这个 DOM 节点,那么这个 DOM 节点究竟是要增加还是删除呢?会带来严重的同步问题。原创 2020-03-13 10:58:03 · 928 阅读 · 0 评论 -
事件稀释:防抖与节流
事件稀释:有些事件在一段时间内会多次触发,事件稀释就是减少这些事件绑定的处理函数的执行频率,以减少频繁的事件处理对性能的损耗。事件稀释有两种方式:防抖和节流。可直接使用的第三方库有:underscore、lodash 等。例如:input 框的输入事件,不停地输入就会不停地执行绑定的事件处理函数。原创 2019-12-06 10:48:29 · 221 阅读 · 0 评论 -
《十七》浏览器基础
浏览器:是安装在电脑里面的一个软件,能够将页面内容渲染出来呈现给用户查看,并让用户与网页进行交互。原创 2019-10-29 11:26:31 · 187 阅读 · 0 评论 -
JS 中循环遍历加监听事件的问题
实质就是作用域的问题。原创 2019-10-25 18:57:24 · 1817 阅读 · 0 评论 -
原生 JS 实现复制粘贴功能、打印功能
input 元素不能设置 disabled 或者,否则复制功能将不起作用。IOS 系统部分版本的微信浏览器不支持。原创 2019-04-26 17:32:13 · 2799 阅读 · 0 评论 -
《十》JavaScript 中的 BOM
BOM:Browser Object Model、浏览器对象模型。BOM 提供了独立于内容而与浏览器窗口进行交互的对象,用来访问和操作浏览器窗口。原创 2019-03-13 11:22:34 · 415 阅读 · 0 评论 -
《六》Javascript 中的原型和原型链
JS 中所有的对象都有一个__proto__属性,指向其构造函数的 prototype 显式原型,是对象类型,称之为对象的隐式原型。原创 2019-03-13 11:28:43 · 261 阅读 · 0 评论 -
《十二》JavaScript 中的事件
JavaScript 事件是由访问 Web 页面的用户引起的一系列的操作,当用户执行某些操作的时候,再去执行一系列代码。原创 2019-03-13 11:30:54 · 295 阅读 · 0 评论 -
《十一》JavaScript 中的 DOM
DOM:Document Object Model、文档对象模型。用来访问和操作文档。每个载入浏览器的 HTML 文档都会成为 document 对象,document 对象是 window 对象的属性。一切皆节点;整个文档是一个文档节点;每个 HTML 标签是一个元素节点;每个 HTML 属性是一个属性节点;包含在 HTML 标签中的文本是文本节点;注释属于注释节点。HTML 文档中的所有节点组成一个节点树;原创 2019-03-13 11:31:08 · 217 阅读 · 0 评论 -
《四》Javascript 中的引用类型
对象是用来保存多个数据的容器。原创 2019-03-13 11:24:22 · 991 阅读 · 0 评论 -
《三》Javascript 中的基本类型
已经声名但是没有赋值的变量。Undefined 类型只有一个值,就是 undefined。var aconsole.log(age) // 报错// 但 typeof a, typeof age 返回的都是 undefined。undefined 源生自 null,因此 ECMA262 规定对它们的相等性测试返回 true。console.log(undefined === null) // false,因为数据类型不同。原创 2019-03-13 11:32:26 · 1259 阅读 · 0 评论 -
《九》JavaScript 中的语句
任何复杂的程序逻辑都可以通过“顺序”,“分支”,“循环”三种基本的程序结构实现。JS 一条语句的后面可以加分号,也可以不加分号。但是在下面两种情况下,不加分号会报错。解决方法就是在上一条语句的末尾或者下一条语句的开头加分号。原创 2019-03-13 11:32:34 · 205 阅读 · 0 评论 -
《八》JavaScript 中的运算符和表达式
运算符的运算顺序:非运算符 > 算术运算符 > 比较运算符 > 逻辑运算符。原创 2019-03-13 11:26:47 · 438 阅读 · 0 评论 -
《十五》JavaScript 的内存管理
任何编程语言,在代码执行的过程中都是需要给它分配内存的,不同的是某些编程语言需要开发人员手动管理内存(例如:C、C++ 等),某些编程语言可以自动管理内存(例如:JS、Java、Python 等)。JS 的内存结构分为栈内存和堆内存。JS 中创建的基本类型值、引用类型值都会占用内存,JS 引擎会在定义数据时自动为其分配内存空间。对于基本类型值,会直接在栈内存中为其分配空间;对于引用类型值,会在堆内存中为其开辟一块空间,并且将这块空间的指针(内存地址)返回给栈内存中的变量让其引用。原创 2019-03-13 11:32:46 · 1062 阅读 · 0 评论 -
《二》Javascript 中的变量
变量:可变化的量,用来存储数据。使用 var 关键字来定义变量。变量的命名遵守标识符的命名规则。可以在声明变量的同时对它使用等号进行赋值;没有赋值的变量默认取值为 undefined。变量可以初始化后再次改变(可以同时改变为不同的类型),但对于后期维护带来困难,而且性能也不高,导致成本很高。ECMAScript 的变量是弱类型的。所谓弱类型就是可以用来保存任何类型的数据,声明变量时不需要指定变量的类型,根据变量的值确定。原创 2019-03-13 11:28:56 · 310 阅读 · 0 评论 -
JS 中引用类型的引用赋值、浅拷贝和深拷贝
改变浅拷贝后对象的引用类型值,原对象的基本类型值就会被改变。深拷贝得到的对象是重新创建的新对象。所以改变赋值后对象的基本类型值和引用类型值,原对象的基本类型值和引用类型值都不会被改变。赋值得到的对象和原对象引用的是堆内存中的同一个地址,指向的是同一个对象。所以改变赋值后对象的基本类型值和引用类型值,原对象的基本类型值和引用类型值也会被改变。改变 obj2 的 name 属性和 hobby 属性的第一个元素,可以看到 obj 的 name 属性值没有被改变,hobby 属性的第一个元素值被改变。原创 2019-10-10 11:04:13 · 778 阅读 · 0 评论 -
JS 阻止子元素触发父元素的事件
不适用于有多个子元素的情况下,因为要做很多判断;也不适用于子元素内部又嵌套子元素的情况。给它添加阻止冒泡事件就可以了。原创 2019-10-08 17:26:39 · 7772 阅读 · 2 评论 -
【form 表单】提交表单数据;文本框按下回车自动触发表单提交、输入框宽度自适应长度
按下提交按钮,浏览器将自动发出请求,携带输入的数据跳转到 action 指定的页面。原创 2019-04-25 11:48:12 · 703 阅读 · 0 评论 -
【正则表达式】常用的正则表达式
匹配一个汉字:const reg = /[\u4E00-\u9FA5]/匹配一个半角英文特殊字符:const reg = /[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]/匹配最多两位小数:const reg = /^\d+\.?\d{0,2}$/匹配手机号:const reg = /^[1][3,4,5,7,8][0-9]{9}$/; 匹配固定电话:const reg = /^0\d{2,3}-?\d{7,8}$/...原创 2019-05-05 09:50:57 · 493 阅读 · 0 评论