好家伙,本篇为《JS高级程序设计》第五章的学习笔记   1.基本引用类型 引用值(或者对象)是某个特定引用类型的实例,在ECMAScript中,引用类型是把数据和功能组织到一起的结构,(像极了“类”) 经常被人错误的称作“类”。 虽然从技术上讲JavaScript是一门面向对象语言,但是ECMAScript缺少传统的面向对象编程语言所具备的某些基本结构, 包括类和接口。引用类型有时候也被称为对象定义,因为他们描述了自己的对象引诱的属性和方法。 对象被认为是某个特定引用类型的实例。新对象通过使用new操作符后跟一个构造函数(constructor)来创建。 构造函数就是用来创建新对象的...

  6dLT7EsVU3rP   2023年11月01日   34   0   0 JavaScript

好家伙,   1.数组 Array应该就是ECMAScript中最常用的类型了。ECMAScript数组跟其他编程语言的数组有很大区别。 跟其他语言中的数组一样,ECMAScript数组也是一组有序的数据, 但跟其他语言不同的是,数组中每个槽位可以存储任意类型的数据。 这意味着可以创建一个数组,它的第一个元素是字符串,第二个元素是数值,第三个是对象。 ECMAScript数组也是动态大小的,会随着数据添加而自动增长。   2.创建数组 有几种基本的方式可以创建数组。第一种是使用Array构造函数,第二种是使用数组字面量   2.1.使用Array构造函数创建数组 ...

  6dLT7EsVU3rP   2023年11月01日   54   0   0 JavaScript

好家伙,    在上一篇中,我们知道了, JS的数组中每个槽位可以存储任意类型的数据 那么,我们能通过数组去模仿某些数据结构吗? 答案是肯定的   1.栈方法 ECMAScript给数组提供几个方法,让它看起来像是另外一种数据结构。 数组对象可以像栈一样,也就是一种限制插人和删除项的数据结构。 栈是一种后进先出(LIFO,Last-In-First-Out)的结构,也就是最近添加的项先被删除。 数据项的插入(称为推入,push)和删除(称为弹出,pop)只在栈的一个地方发生,即栈顶。 ECMAScript数组提供了push()和pop()方法,以实现类似栈的行为。...

  6dLT7EsVU3rP   2023年11月01日   60   0   0 JavaScript

好家伙,本篇为《JS高级程序设计》第六章“集合引用类型”学习笔记   1.数组的复制和填充 批量复制方法copyWithin(),以及填充数组方法fill()。 这两个方法的函数签名类似,都需要指定既有数组实例上的一个范围,包含开始索引,不包含结束索引。 使用这个方法不会改变数组的大小。   1.1.fill()方法 使用fill()方法可以向一个已有的数组中插入全部或部分相同的值。 开始索引用于指定开始填充的位置,它是可选的。 如果不提供结束索引,则一直填充到数组末尾。 负值索引从数组末尾开始计算。 constarray=[0,0,0,0,0];//填充5array.f...

  6dLT7EsVU3rP   2023年11月01日   29   0   0 JavaScript

好家伙,本篇为《JS高级程序设计》第八章“对象、类与面向对象编程”学习笔记   1.关于对象 ECMA-262将对象定义为一组属性的无序集合。严格来说,这意味着对象就是一组没有特定顺序的值。 对象的每个属性或方法都由一个名称来标识,这个名称映射到一个值。正因为如此(以及其他还未讨论的原因),可以把 ECMAScript的对象想象成一张散列表,其中的内容就是一组名/值对,值可以是数据或者函数。   简单使用一下 letobject=newObject();object.name="panghu";object.age="20";object.job="student";ob...

  6dLT7EsVU3rP   2023年11月01日   62   0   0 JavaScript

好家伙,本篇为《JS高级程序设计》第八章“对象、类与面向对象编程”学习笔记   1.工厂模式 工厂模式是另外一种关注对象创建概念的创建模式。 它的领域中同其它模式的不同之处在于它并没有明确要求我们使用一个构造器。 取而代之,一个工厂能提供一个创建对象的公共接口,我们可以在其中指定我们希望被创建的工厂对象的类型。 functioncreatePerson(name,age,job){letperson=newObject();person.name=name;person.age=age;person.job=job;person.getName=function(){console...

  6dLT7EsVU3rP   2023年11月01日   43   0   0 JavaScript

好家伙,好家伙,本篇为《JS高级程序设计》第八章“对象、类与面向对象编程”学习笔记   1.原型链 原型链是JS实现"继承"的方案之一 ECMA-262把原型链定义为ECMAScript的主要继承方式。其基本思想就是通过原型继承多个引用类型的属性和方法。 重温一下构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型有一个属性指回构造函数,而实例有一个内部指针指向原型。 如果原型是另一个类型的实例呢?那就意味着这个原型本身有一个内部指针指向另一个原型,相应地另一个原型也有一个指针指向另一个构造函数。 这样就在实例和原型之间构造了一条原型链。这就是原型链的基本构想。 func...

  6dLT7EsVU3rP   2023年11月01日   43   0   0 JavaScript

好家伙,我回来了, 本篇为《JS高级程序设计》第十四章“DOM编程”学习笔记   1.DOM编程 我们知道DOM是HTML文档的编程接口, 我们可以通过HTML代码实现DOM操作, 也同样能够通过JavaScript实现DOM操作。   2.JS操作DOM 我们来简单的举个例子: 随便开一个空白的html页面   <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="I...

  6dLT7EsVU3rP   2023年11月01日   56   0   0 JavaScript

好家伙,本篇为《JS高级程序设计》第十章“函数”学习笔记   1.函数的三种定义方式:函数表达式、函数声明及箭头函数 函数声明: functionsum(a){returna+1;} 函数表达式: letsum=function(a){returna+1;}   箭头函数: letsum=(a)=>{returna+1;}   以函数声明方式声明的函数存在"函数声明提升", 在执行代码时,JavaScript引擎会先执行一遍扫描,把发现的函数声明提升到源代码树的顶部。 因此即使函数定义出现在调用它们的代码之后,引擎也会把函数声明提升到顶部。 而函...

  6dLT7EsVU3rP   2023年11月01日   38   0   0 JavaScript

好家伙,本篇为《JS高级程序设计》第十章“期约与异步函数”学习笔记   1.异步编程 同步行为和异步行为的对立统一是计算机科学的一个基本概念。 特别是在JavaScript这种单线程事件循环模型中,同步操作与异步操作更是代码所要依赖的核心机制。 异步行为是为了优化因计算量大而时间长的操作。如果在等待其他操作完成的同时,即使运行其他指令,系统也能保持稳定,那么这样做就是务实的。 重要的是,异步操作并不一定计算量大或要等很长时间。只要你不想为等待某个异步操作而阻塞线程执行,那么任何时候都可以使用。     2.期约Promise基础概念 期约是对尚不存在结果的一个替身...

  6dLT7EsVU3rP   2023年11月01日   90   0   0 JavaScript

好家伙,本篇为《JS高级程序设计》第十章“期约与异步函数”学习笔记   1.非重入期约 1.1.可重入代码(百度百科) 先来了解一个概念 可重入代码(Reentrycode)也叫纯代码(Purecode)是一种允许多个进程同时访问的代码。 为了使各进程所执行的代码完全相同,故不允许任何进程对其进行修改。 程序在运行过程中可以被打断,并由开始处再次执行,并且在合理的范围内(多次重入,而不造成堆栈溢出等其他问题), 程序可以在被打断处继续执行,且执行结果不受影响。                                             ----来自百度百科   ...

  6dLT7EsVU3rP   2023年11月01日   28   0   0 JavaScript

好家伙,本篇为《JS高级程序设计》第十章“期约与异步函数”学习笔记   ES8的async/await旨在解决利用异步结构组织代码的问题。 为为此增加了两个新关键字:async和await。   1.async关键字 1.1.使用说明 async关键字用于声明异步函数。 函数声明、函数表达式、箭头函数和方法都可以使用 使用async关键字可以让函数具有异步特征,但总体上其代码仍然是同步求值的。 而在参数或闭包方面,异步函数仍然具有普通JavaScript函数的正常行为。 asyncfunctionfoo(){}letbar=asyncfunction(){};letbaz...

  6dLT7EsVU3rP   2023年11月01日   25   0   0 JavaScript

好家伙,本篇为做题思考 书接上文   题目如下:  1.请给出下列代码的输出结果,并配合"消息队列"写出相关解释 asyncfunctionfoo(){console.log(2);console.log(awaitPromise.resolve(8));console.log(9);}asyncfunctionbar(){console.log(4);console.log(await6);console.log(7);}console.log(1);foo();console.log(3);bar();console.log(5);   好我们公布答案: ...

  6dLT7EsVU3rP   2023年11月01日   47   0   0 JavaScript

好家伙,本篇为《JS高级程序设计》第二五章“浏览器存储”学习笔记   我们先来讲个故事 一个“薅羊毛”的故事(qq.com) 概括一下,就是 有个人通过网络平台非法购买了大量“cookie”数据。 突破平台封控,冒用他人新用户身份,非法骗取新用户优惠券。 拿着优惠券低价购入商品,随后转卖并从中赚取差价。 再将使用过的“cookie”数据再次低价转卖或转赠他人,从中获利。(太狠了) 随后我们回到正题   我们进入一个需要登陆的网站,我们注册登录 随后,我们希望每次进入的时候,都不再需要手动输入信息登录, 我们希望浏览器中保存着我们的信息 于是,直接在客户端存储用户信息的需求出...

  6dLT7EsVU3rP   2023年11月01日   44   0   0 JavaScript

好家伙,本篇为《JS高级程序设计》第二十六章“模块”学习笔记   JS开发会遇到代码量大和广泛使用第三方库的问题。 解决这个问题的方案通常需要把代码拆分成很多部分,然后再通过某种方式将它们连接起来。 若代码量较大,我们使用模块化开发的模式,也能够使代码容易维护 我们需要模块   1.模块模式 把逻辑分块,各自封装,相互独立,每个块自行决定对外暴露什么,同时自行决定引入执行哪些外部代码。 这就是模块模式的思想     2.es6前的模块加载器 2.1.commonJS规范 注意了,这不是某个包或者某个方法,而是某种规范 CommonJS规范概述了同步声明依...

  6dLT7EsVU3rP   2023年11月01日   57   0   0 JavaScript

好家伙,   代码已开源 Git: https://gitee.com/tang-and-han-dynasties/panghu-planebattle-esm.git NPM: panghu-planebattle-esmnpm(npmjs.com)   现在,比如说,我用Vue写好了个人博客主页的前端 我想在这个主页里面加点东西,让我的博客更缤纷多彩一点 我想在他的主页里面塞个小游戏,他会怎么做   1.思考步骤 如下: 第一步:去网上找个小游戏的资源,将这个包下载到本地, 诶,正好发现有个飞机大战panghu-planebattle-modular&n...

  6dLT7EsVU3rP   2023年11月01日   67   0   0 JavaScript

好家伙,搬砖   今天在做组件迁移(从一个旧平台迁移到一个新平台)的时候,发现了一些小小的问题:   1.错误描述: 在穿梭框组件中,使用"节点配置"方法添加数据的时候,左测数据选择框直接消失了 这里我们猜测一下,大概是数据处理出了问题 此处,我们使用"数据绑定"绑定数据方法:    定义数据:   绑定数据   2.错误分析 此时我们去看看"节点配置"方法和"数据绑定"绑定的数据长什么样子 后面对比两组数据 options                         var...

  6dLT7EsVU3rP   2023年11月01日   69   0   0 JavaScript

好家伙,写作业   什么是顺序表: 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、 使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系, 采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。                                                           ----来自百度百科       &...

  6dLT7EsVU3rP   2023年11月01日   74   0   0 算法与数据结构

好家伙,写题,题目代码在最后   来吧,     1.栈  栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。 这一端被称为栈顶,相对地,把另一端称为栈底。 向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素; 从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。                     &...

  6dLT7EsVU3rP   2023年11月01日   44   0   0 算法与数据结构

好家伙,   题目如下: 1.舞伴配对问题:假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。 2.若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。要求编写程序,模拟上述舞伴配对问题,且规定: 程序的输入时:进入舞厅人员的姓名和性别。 程序输出是:如果是配对的,则输出两个舞伴的人的姓名;       如果是未配成对的,则输出等待配对的人数和下一轮舞曲开始时第一个可获得舞伴的人。     题目分析如下: 首先建立两个队列,一个队列存放男士,一个队列存放女士, 配对时,每轮每个队列的队头元素出...

  6dLT7EsVU3rP   2023年11月01日   69   0   0 算法与数据结构
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~