![](https://img-blog.csdnimg.cn/2c74f3c0426e452fbc6eb4745be6a117.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaScript基础
文章平均质量分 87
JavaScript高级程序设计第4版
每天内卷一点点
学无止尽
展开
-
JavaScript-初识JavaScript
JavaScript 高级程序设计-初识JavaScript原创 2022-03-14 22:23:43 · 680 阅读 · 0 评论 -
JavaScript-HTML中的JavaScript
JavaScript 高级程序设计-HTML中的 JavaScript原创 2022-03-15 23:45:32 · 1464 阅读 · 0 评论 -
JavaScript-语言基础(语法、关键字与保留字)
JavaScript 高级程序设计-语言基础(语法、关键字与保留字)原创 2022-03-16 21:55:23 · 1135 阅读 · 0 评论 -
JavaScript-语言基础(变量)
JavaScript 高级程序设计-语言基础(变量)原创 2022-03-17 00:10:08 · 1304 阅读 · 5 评论 -
JavaScript-语言基础(数据类型)
JavaScript 高级程序设计-语言基础(数据类型)原创 2022-03-20 19:00:04 · 998 阅读 · 8 评论 -
JavaScript-语言基础(操作符)
包括操作符详细介绍、操作符使用场景、操作符优先级等原创 2022-03-22 23:31:13 · 1178 阅读 · 9 评论 -
JavaScript-语言基础(语句)
关于javaScript 中语句的详细介绍(if、if else、while、for、for-in、for-of、switch、标签语句等)原创 2022-03-23 23:11:09 · 1371 阅读 · 7 评论 -
JavaScript-语言基础(函数、语言基础小结)
简单介绍函数,并对整个语法基础篇小结原创 2022-03-24 22:26:46 · 401 阅读 · 5 评论 -
JavaScript-变量、作用域与内存(原始值与引用值)
文章目录一、动态属性二、复制值2.1 原始值复制2.2 引用值复制三、传递参数3.1 原始值作为参数传递3.2 引用值作为参数传递四、确定类型( instanceof )ECMAScript 变量可以包含两种不同类型的数据:原始值和引用值在把一个值赋给变量时,JavaScript 引擎必须确定这个值是原始值还是引用值原始值( primitive value ):最简单的数据,直接存放在变量(栈空间)中保存原始值的变量是按值访问的,因为我们操作的就是存储在变量中的实际值引用值( r原创 2022-03-26 22:36:42 · 1265 阅读 · 4 评论 -
JavaScript-变量、作用域与内存(执行上下文与作用域)
文章目录一、执行上下文与作用域二、作用域链增强(with、try/catch)一、执行上下文与作用域变量或函数的上下文决定了它们可以访问哪些数据,以及它们的行为全局上下文是最外层的上下文在浏览器中,全局上下文就是我们常说的 window 对象,因此所有通过 var 定义的全局变量和函数都会成为 window 对象的属性和方法使用 let 和 const 的顶级声明不会定义在全局上下文中,但在作用域链解析上效果是一样的上下文在其所有代码都执行完毕后会被销毁,包括定义在它上面的所有变量和函数(原创 2022-03-27 17:57:07 · 1429 阅读 · 1 评论 -
JavaScript-变量、作用域与内存(垃圾回收+本章小结)
文章目录一、标记清理二、引用计数三、性能四、内存管理4.1 通过 const 和 let 声明提升性能4.2 隐藏类和删除操作4.3 内存泄露4.4 静态分配与对象池(了解)五、变量、作用域与内存小结基本思路:确定哪个变量不会再使用,然后释放它占用的内存JavaScript 是使用垃圾回收的语言,也就是说执行环境负责在代码执行时管理内存通过自动内存管理实现内存分配和闲置资源回收这个过程是周期性的,即垃圾回收程序每隔一定时间(或者说在代码执行过程中某个预定的收集时间)就会自动执行垃圾回原创 2022-03-27 22:08:06 · 1472 阅读 · 3 评论 -
JavaScript-基本引用类型(Date)
日期对象及定时器案例介绍原创 2022-02-28 23:00:07 · 745 阅读 · 0 评论 -
JavaScript-基本引用类型(正则表达式:RegExp)
文章目录一、正则表达式概述1.1 什么是正则表达式1.2 正则表达式的特点二、正则表达式的创建2.1 利用字面量创建正则表达式2.2 通过构造函数来创建正则表达式三、RegExp 实例属性(实际开发使用不多)四、RegExp 实例方法4.1 exec()4.2 test()4.3 继承的方法五、正则表达式中的特殊字符5.1 边界符5.2 字符类5.2.1 方括号( [ ] )5.2.2 量词符5.2.3 括号总结5.3 预定义类六、正则替换( replace )ECMAScript 通过 RegExp原创 2022-04-05 17:27:59 · 1286 阅读 · 0 评论 -
JavaScript-基本引用类型(原始值包装类型介绍)
文章目录一、原始值包装类型简介二、引用类型与原始值包装类型的主要区别一、原始值包装类型简介为了方便操作原始值,ECMAScript 提供了 3 种特殊的引用类型:Boolean、Number 和 String每当用到某个原始值的方法或属性时,后台都会创建一个相应原始包装类型的对象,从而暴露出操作原始值的各种方法例如:let s1 = "some text"; let s2 = s1.substring(2);s1 是一个包含字符串的变量,它是一个原始值紧接着在 s1 上调用了 s原创 2022-04-05 21:24:48 · 582 阅读 · 0 评论 -
JavaScript-基本引用类型(原始值包装类型:Boolean)
文章目录一、原始值包装类型:Boolean二、原始值和引用值(Boolean 对象)的区别一、原始值包装类型:BooleanBoolean 是对应布尔值的引用类型let booleanObject = new Boolean(true);Boolean 的实例会重写 valueOf()方法,返回一个原始值 true 或 false。toString()方法被调用时也会被覆盖,返回字符串"true"或"false"。不过,Boolean 对象在 ECMAScript中用得很少。不仅如此,它们还原创 2022-04-05 21:43:29 · 991 阅读 · 0 评论 -
JavaScript-基本引用类型(原始值包装类型:Number)
文章目录一、原始值包装类型:Number二、Number 提供的其他将数值格式化为字符串的方法2.1 toFixed()2.2 toExponential()2.3 toPrecision()2.4 isInteger()方法与安全整数(ES6新增)一、原始值包装类型:NumberNumber 是对应数值的引用类型。要创建一个 Number 对象,就使用 Number 构造函数并传入一个数值let numberObject = new Number(10);与 Boolean 类型一样,Nu原创 2022-04-05 22:21:36 · 1052 阅读 · 0 评论 -
JavaScript-基本引用类型(原始值包装类型:String)
文章目录一、原始值包装类型:String二、String 类型解析和操作字符串的方法2.1 JavaScript 字符2.1.1 charAt()2.1.2 charCodeAt()2.1.3 fromCharCode()2.2 字符串操作方法2.2.1 拼接字符串 concat()2.2.2 从字符串中提取子字符串 slice()、substr()、 substring()2.3 字符串位置方法 indexOf()、lastIndexOf()2.4 字符串包含方法-ES6新增 startsWith()、e原创 2022-04-09 23:02:47 · 1283 阅读 · 0 评论 -
JavaScript-基本引用类型(单例内置对象:Global)
文章目录一、URL 编码方法1.1 encodeURI()1.2 encodeURIComponent()1.3 encodeURI() 和 encodeURIComponent() 的区别1.4 decodeURI() 和 decodeURIComponent()二、eval()三、Global 对象属性四、window 对象五、另一种获取 Global 对象的方式Global 对象是 ECMAScript 中最特别的对象,因为代码不会显式地访问它ECMA-262 规定 Global 对象为一种原创 2022-04-18 23:06:56 · 629 阅读 · 0 评论 -
JavaScript-基本引用类型(单例内置对象:Math + 基本引用类型小结)
1、内置对象1.1 内置对象 JavaScript 中的对象分为3种:自定义对象 、内置对象、 浏览器对象前面两种对象是JS 基础内容,属于 ECMAScript; 第三个浏览器对象属于 JS 独有的,JS API 讲解内置对象就是指 JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法),内置对象最大的优点就是帮助我们快速开发。 JavaScript 提供了多个内置对象:Math、 Date 、Array、String等1.2 Math原创 2022-02-27 17:24:23 · 342 阅读 · 0 评论 -
JavaScript-集合引用类型(Object)
文章目录一、创建 Object 的实例1.1 使用 new 操作符和 Object 构造函数1.2 使用对象字面量(object literal)表示法二、对象属性的存取更多关于Object 类型的介绍,会在后续博客中更新一、创建 Object 的实例1.1 使用 new 操作符和 Object 构造函数let person = new Object(); person.name = "Nicholas"; person.age = 29;1.2 使用对象字面量(object liter原创 2022-04-19 16:47:01 · 837 阅读 · 1 评论 -
JavaScript-集合引用类型(Array)
文章目录一、创建数组1.1 使用 Array 构造函数1.2 使用数组字面量(array literal)表示法1.3 ES6 新增的用于创建数组的静态方法(from()、 of())1.3.1 Array.from()1.3.2 Array.of()二、数组空位一、创建数组1.1 使用 Array 构造函数let colors = new Array();给构造函数传入一个数值,然后 length 属性就会被自动创建并设置为这个值let colors = new Array(20); //原创 2022-04-26 22:32:11 · 318 阅读 · 0 评论 -
JavaScript-集合引用类型(Map- ES6新特性)
文章目录一、基本 APIECMAScript 6 以前,在 JavaScript 中实现“键/值”式存储可以使用 Object 来方便高效地完成,也就是使用对象属性作为键,再使用属性来引用值。但这种实现并非没有问题,为此 TC39 委员会专门为“键/值”存储定义了一个规范。作为 ECMAScript 6 的新增特性,Map 是一种新的集合类型,为这门语言带来了真正的键/值存储机制Map 的大多数特性都可以通过 Object 类型实现,但二者之间还是存在一些细微的差异。具体实践中使用哪一个,还是值原创 2022-05-03 22:09:27 · 661 阅读 · 0 评论 -
JavaScript-集合引用类型(WeakMap- ES6新特性)
文章目录一、基本API二、弱键三、不可迭代键四、使用弱映射4.1 私有变量4.2 DOM 节点元数据ECMAScript 6 新增的“弱映射”(WeakMap)是一种新的集合类型,为这门语言带来了增强的键/值对存储机制WeakMap 是 Map 的“兄弟”类型,其 API 也是 Map 的子集WeakMap 中的“weak”(弱),描述的是 JavaScript 垃圾回收程序对待“弱映射”中键的方式一、基本API可以使用 new 关键字实例化一个空的 WeakMapconst wm =原创 2022-05-04 21:08:39 · 572 阅读 · 0 评论 -
JavaScript-集合引用类型(Set- ES6新特性)
文章目录一、基本 API二、顺序与迭代三、定义正式集合操作ECMAScript 6 新增的 Set 是一种新集合类型,为这门语言带来集合数据结构。Set 在很多方面都像是加强的 Map,这是因为它们的大多数 API 和行为都是共有的一、基本 API使用 new 关键字和 Set 构造函数可以创建一个空集合const m = new Set();如果想在创建的同时初始化实例,则可以给 Set 构造函数传入一个可迭代对象,其中需要包含插入到新集合实例中的元素// 使用数组初始化集合c原创 2022-05-04 22:06:26 · 568 阅读 · 0 评论 -
JavaScript-集合引用类型(WeakSet- ES6新特性)
文章目录一、基本 API二、弱值三、不可迭代值四、使用弱集合ECMAScript 6 新增的“弱集合”(WeakSet)是一种新的集合类型,为这门语言带来了集合数据结构WeakSet 是 Set 的“兄弟”类型,其 API 也是 Set 的子集WeakSet 中的“weak”(弱),描述的是 JavaScript 垃圾回收程序对待“弱集合”中值的方式一、基本 API可以使用 new 关键字实例化一个空的 WeakSetconst ws = new WeakSet();弱集合中的值只原创 2022-05-04 22:24:23 · 95 阅读 · 0 评论 -
JavaScript-集合引用类型(迭代与扩展操作 + 本章小结)
文章目录一、迭代与扩展操作二、本章小结一、迭代与扩展操作ECMAScript 6 新增的迭代器和扩展操作符对集合引用类型特别有用。这些新特性让集合类型之间相互操作、复制和修改变得异常方便有 4 种原生集合类型定义了默认迭代器(Array、所有定型数组、Map、Set)这意味着上述所有类型都支持顺序迭代,都可以传入 for-of 循环let iterableThings = [ Array.of(1, 2), typedArr = Int16Array.of(3, 4), new原创 2022-05-04 22:44:44 · 769 阅读 · 1 评论 -
JavaScript-迭代器与生成器
在 JavaScript 中,计数循环就是一种最简单的迭代:迭代会在一个有序集合上进行。(“有序”可以理解为集合中所有项都可以按照既定的顺序被遍历到,特别是开始和结束项有明确的定义。)数组是 JavaScript 中有序集合的最典型例子:因为数组有已知的长度,且数组每一项都可以通过索引获取,所以整个数组可以通过递增索引来遍历。由于如下原因,通过这种循环来执行例程并不理想:ES5 新增了 方法,向通用迭代需求迈进了一步(但仍然不够理想):这个方法解决了单独记录索引和通过数组对象取得值的问题。不过,原创 2022-12-04 18:33:46 · 241 阅读 · 0 评论 -
JavaScript-对象、类与面向对象编程(理解对象)
创建自定义对象的通常方式是创建 Object 的一个新实例,然后再给它添加属性和方法,如下例所示:这个例子创建了一个名为 person 的对象,而且有三个属性(name、age 和 job)和一个方法(sayName())。sayName() 方法会显示 this.name 的值,这个属性会解析为 person.name。早期 JavaScript 开发者频繁使用这种方式创建新对象。几年后,对象字面量变成了更流行的方式。前面的例子如果使用对象字面量则可以这样写:这个例子中的 person 对象跟前面例子原创 2022-12-05 19:07:56 · 754 阅读 · 0 评论 -
JavaScript-对象、类与面向对象编程(创建对象)
综观 ECMAScript 规范的历次发布,每个版本的特性似乎都出人意料。ECMAScript 5.1 并没有正式支持面向对象的结构,比如类或继承。但是,正如接下来几节会介绍的,巧妙地运用原型式继承可以成功地模拟同样的行为。ECMAScript 6 开始正式支持类和继承。ES6 的类旨在完全涵盖之前规范设计的基于原型的继承模式。不过,无论从哪方面看,ES6 的类都仅仅是封装了 ES5.1 构造函数加原型继承的语法糖而已。原创 2022-12-10 22:13:49 · 152 阅读 · 0 评论 -
JavaScript-对象、类与面向对象编程(继承)
此外,子类也不能访问父类原型上定义的方法,因此所有类型只能使用构造函数模式。原创 2022-12-11 22:23:19 · 184 阅读 · 0 评论 -
JavaScript - 代理与反射(代理基础)
使用代理的主要目的是可以定义捕获器(trap)。捕获器就是在处理程序对象中定义的“基本操作的拦截器”。每个处理程序对象可以包含零个或多个捕获器,每个捕获器都对应一种基本操作,可以直接或间接在代理对象上调用。每次在代理对象上调用这些基本操作时,代理可以在这些操作传播到目标对象之前先调用捕获器函数,从而拦截并修改相应的行为。注意:捕获器(trap)是从操作系统中借用的概念。在操作系统中,捕获器是程序流中的一个同步中断,可以暂停程序流,转而执行一段子例程,之后再返回原始程序流。原创 2023-01-16 21:18:34 · 790 阅读 · 0 评论 -
JavaScript - 代理与反射(代理捕获器与反射方法)
代理可以捕获 13 种不同的基本操作。这些操作有各自不同的反射 API 方法、参数、关联 ECMAScript 操作和不变式。正如前面示例所展示的,有几种不同的 JavaScript 操作会调用同一个捕获器处理程序。不过,对于在代理对象上执行的任何一种操作,只会有一个捕获处理程序被调用。不会存在重复捕获的情况。只要在代理上调用,所有捕获器都会拦截它们对应的反射 API 操作。原创 2023-01-18 10:27:08 · 596 阅读 · 0 评论 -
JavaScript - 代理与反射(代理模式 + 小结)
使用代理可以在代码中实现一些有用的编程模式。原创 2023-01-18 11:04:09 · 571 阅读 · 0 评论 -
JavaScript - 函数
对于命名参数而言,如果调用函数时没有传这个参数,那么它的值就是 undefined。这就类似于定义了变量而没有初始化。比如,如果只给 doAdd() 传了一个参数,那么 num2 的值就是 undefined。原创 2023-02-20 13:22:39 · 631 阅读 · 0 评论 -
JavaScript -期约与异步函数
ECMAScript 6 及之后的几个版本逐步加大了对异步编程机制的支持,提供了令人眼前一亮的新特性。ECMAScript 6 新增了正式的 Promise(期约)引用类型,支持优雅地定义和组织异步逻辑。接下来几个版本增加了使用 async 和 await 关键字定义异步函数的机制。注意 本章示例将大量使用异步日志输出的方式 setTimeout(console.log, 0, …params),旨在演示执行顺序及其他异步行为。异步输出的内容看起来虽然像是同步输出的,但实际上是异步打印的。原创 2023-03-07 16:25:17 · 424 阅读 · 1 评论