好家伙,本篇为《JS高级程序设计》第六章“集合引用类型”学习笔记 1.数组的复制和填充 批量复制方法 copyWithin(),以及填充数组方法fill()。 这两个方法的函数签名类似,都需要指定既有数组实例上的一个范围,包含开始索引,不包含结束索引。 使用这个方法不会改变数组的大小。 1.1.fi
好家伙,本篇为《JS高级程序设计》第六章“集合引用类型”学习笔记 1.Map ECMAScript6以前,在JavaScript中实现“键/值”式存储可以使用object来方便高效地完成,也就是使用对象属性作为键,再使用属性来引用值。 但这种实现并非没有问题,为此TC39委员会专门为“键/值”存储定
好家伙,本篇为《JS高级程序设计》第八章“对象、类与面向对象编程”学习笔记 1.关于对象 ECMA-262将对象定义为一组属性的无序集合。严格来说,这意味着对象就是一组没有特定顺序的值。 对象的每个属性或方法都由一个名称来标识,这个名称映射到一个值。正因为如此(以及其他还未讨论的原因),可以把 EC
好家伙,本篇为《JS高级程序设计》第八章“对象、类与面向对象编程”学习笔记 1.工厂模式 工厂模式是另外一种关注对象创建概念的创建模式。 它的领域中同其它模式的不同之处在于它并没有明确要求我们使用一个构造器。 取而代之,一个工厂能提供一个创建对象的公共接口,我们可以在其中指定我们希望被创建的工厂对象
好家伙,好家伙,本篇为《JS高级程序设计》第八章“对象、类与面向对象编程”学习笔记 1.原型链 原型链是JS实现"继承"的方案之一 ECMA-262把原型链定义为ECMAScript的主要继承方式。其基本思想就是通过原型继承多个引用类型的属性和方法。 重温一下构造函数、原型和实例的关系:每个构造函数
好家伙,本篇为《JS高级程序设计》第十四章“DOM编程”学习笔记 1.Document类型 Document 类型是 JavaScript 中表示文档节点的类型。 在浏览器中,文档对象 document 是 HTMLDocument 的实例(HTMLDocument 继承 Document),表示整
好家伙,本篇为《JS高级程序设计》第十章“函数”学习笔记 1.函数的三种定义方式:函数表达式、函数声明及箭头函数 函数声明: function sum(a) { return a + 1; } 函数表达式: let sum= function(a){ return a + 1; } 箭头函数: le
好家伙,本篇为《JS高级程序设计》第十章“函数”学习笔记 ECMAScript 中的函数是对象,因此有属性和方法。 1.函数属性 每个函数都有两个属性:length 和 prototype。 length属性: 保存函数定义的命名参数的个数 prototype: toString()、valueOf
好家伙,本篇为《JS高级程序设计》第十章“期约与异步函数”学习笔记 1.异步编程 同步行为和异步行为的对立统一是计算机科学的一个基本概念。 特别是在 JavaScript 这种单线程事 件循环模型中,同步操作与异步操作更是代码所要依赖的核心机制。 异步行为是为了优化因计算量大而 时间长的操作。如果在
好家伙,本篇为《JS高级程序设计》第十章“期约与异步函数”学习笔记 1.非重入期约 1.1.可重入代码(百度百科) 先来了解一个概念 可重入代码(Reentry code)也叫纯代码(Pure code)是一种允许多个进程同时访问的代码。 为了使各进程所执行的代码完全相同,故不允许任何进程对其进行修
好家伙,本篇为《JS高级程序设计》第十章“期约与异步函数”学习笔记 ES8 的 async/await 旨在解决利用异步结构组织代码的问题。 为为此增加了两个新关键字:async 和 await。 1.async关键字 1.1.使用说明 async 关键字用于声明异步函数。 函数声明、函数表达式、箭
好家伙,本篇为做题思考 书接上文 题目如下: 1.请给出下列代码的输出结果,并配合"消息队列"写出相关解释 async function foo() { console.log(2); console.log(await Promise.resolve(8)); console.log(9); }
好家伙,本篇为《JS高级程序设计》第二五章“浏览器存储”学习笔记 我们先来讲个故事 一个“薅羊毛”的故事 (qq.com) 概括一下,就是 有个人通过网络平台非法购买了大量“cookie”数据。 突破平台封控,冒用他人新用户身份,非法骗取新用户优惠券。 拿着优惠券低价购入商品,随后转卖并从中赚取差价
好家伙,本篇为《JS高级程序设计》第二十六章“模块”学习笔记 JS开发会遇到代码量大和广泛使用第三方库的问题。 解决这个问题的方案通 常需要把代码拆分成很多部分,然后再通过某种方式将它们连接起来。 若代码量较大,我们使用模块化开发的模式,也能够使代码容易维护 我们需要模块 1.模块模式 把逻辑分块,
好家伙,本篇为《JS高级程序设计》第十二章"BOM"学习笔记 什么是BOM? BOM(Browser Object Model) 是指浏览器对象模型,是用于描述这种对象与对象之间层次关系的模型, 浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。 BOM由多个对象组成,其中代表浏
好家伙,本篇为《JS高级程序设计》第十七章"事件"学习笔记 1.DOM0事件处理程序 在 JavaScript 中指定事件处理程序的传统方式是把一个函数赋值给(DOM 元素的)一个事件处理程 序属性。 添加点击事件: <正文> <脚本> le
好家伙,本篇为MDN文档数组方法的学习笔记 Array.prototype.reduce() - JavaScript | MDN (mozilla.org) 数组方法这块的知识缺了,补一下 1.map()方法 map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返
好家伙,本篇为应付老师的实验报告,有需要的拿去抄吧 思路讲解在上一篇: 数据结构与算法大作业:走迷宫程序(C,代码以及思路) 一、作业目的 1、 掌握用数据结构的知识进行程序设计。 2、 应用所学的数据结构完成一个具有一定实际意义的应用程序的设计、编码、调试,锻炼实践动手能力,提高编程水平。 二、作
以下代码为修改vector内部的每一个元素,使其每个元素大小变为原来的平方。 std::vector v1{1, 2, 4, 2}; std::for_each(begin(v1), end(v1), [](auto& n) { return n * n; }); for (const auto&
注释掉的为传统的写法,从C++20起支持default关键字修饰的写法,即使是成员变量有多个的时候也支持,减轻了程序员的心智负担。