摘要: JavaScript面向对象 对象类型的使用 在数据类型中我们提到还有一种特别的类型:对象类型。 对象类型涉及到JavaScript的各个方面,所以掌握对象类型非常重要; 对象类型是一种存储键值对(key-value)的更复杂的数据类型; 为什么需要对象类型呢? 基本数据类型可以存储一些简单的值,但 阅读全文
posted @ 2024-10-20 02:01 韩德才 阅读(21) 评论(0) 推荐(0)
摘要: 程序中的foo,bar,baz var foo ="xxxx"//变量 var bar = { //函数 name:"xxxx" } 它们通常被用来作为函数、变量、文件的名词; 目前已经编程了计算机编程的术语一部分; 但是它们本身并没有特别的用途和意义; 常被称之为“伪变量”(metasyn 阅读全文
posted @ 2024-10-20 02:01 韩德才 阅读(20) 评论(0) 推荐(0)
摘要: 认识循环语句 1.在开发中我们经常需要做各种各样的循环操作: 比如把一个列表中的商品、歌曲、视频依次输出进行展示; 比如对一个列表进行累加计算; 比如运行相同的代码将数字1 到10 逐个输出; 2.循环是一种重复运行同一代码的方法。 如果是对某一个列表进行循环操作,我们通常也会称之为遍历(t 阅读全文
posted @ 2024-10-20 01:59 韩德才 阅读(64) 评论(0) 推荐(0)
摘要: JavaScript分支语句 程序执行顺序 顺序 >从上向下,顺序执行代码 分支 >根据条件判断,决定执行代码的分支 循环 >让特定代码重复执行 代码块的概念 在开发中,一行代码很难完成某一个特定的功能,我们就会将这些代码放到一个代码块中 // 一个代码块 { var num1 = 10; var 阅读全文
posted @ 2024-10-20 01:59 韩德才 阅读(44) 评论(0) 推荐(0)
摘要: JavaScript基础运算符 几乎所有的编程语言都有各种各样的运算符(也被称之为操作符,operators) 运算符和运算元 运算元 运算元——运算符应用的对象。 ✓ 比如说乘法运算5 * 2,有两个运算元; ✓ 左运算元5 和右运算元2; ✓ 有时候人们也称其为“参数”; 如果一个运算符对应的只 阅读全文
posted @ 2024-10-20 01:58 韩德才 阅读(51) 评论(0) 推荐(0)
摘要: 认识JavaScript变量 变量的定义,规范等 一个变量,就是一个用于存放数值的容器; 这个数值可能是一个用于计算的数字,或者是一个句子中的字符串,或者其他任意的数据; 变量的独特之处在于它存放的数值是可以改变的 变量的命名规则 变量的声明:在JavaScript中声明一个变量使用var关键字(v 阅读全文
posted @ 2024-10-20 01:56 韩德才 阅读(27) 评论(0) 推荐(0)
摘要: ES5 异步代码的处理 <script> // 1.设计一个什么地方是传入参数什么地方是传入回调函数的函数 function execode(counter,successCallback,failCallback){ // 异步任务:调用某个函数不会立马返回结果 setTimeout(()=>{ 阅读全文
posted @ 2024-10-20 01:52 韩德才 阅读(52) 评论(0) 推荐(0)
摘要: 监听对象的操作 ◼ 我们先来看一个需求:有一个对象,我们希望监听这个对象中的属性被设置或获取的过程 通过我们前面所学的知识,能不能做到这一点呢? 其实是可以的,我们可以通过之前的属性描述符中的存储属性描述符来做到; 案例: //2.监听所有的属性(使用Object.defineProperty 阅读全文
posted @ 2024-10-20 01:50 韩德才 阅读(250) 评论(0) 推荐(0)
摘要: ES7 - Array Includes ◼ 在ES7之前,如果我们想判断一个数组中是否包含某个元素,需要通过 indexOf获取结果,并且判断是否为 -1。 ◼ 在ES7中,我们可以通过includes来判断一个数组中是否包含一个指定的元素,根据情况,如果包含则返回 true,否则返回false。 阅读全文
posted @ 2024-10-20 01:45 韩德才 阅读(66) 评论(0) 推荐(0)
摘要: 新的ECMA代码执行描述 ◼ 在执行学习JavaScript代码执行过程中,我们学习了很多ECMA文档的术语: 执行上下文栈:Execution Context Stack,用于执行上下文的栈结构; 执行上下文:Execution Context,代码在执行之前会先创建对应的执行上下文; 变量 阅读全文
posted @ 2024-10-20 01:44 韩德才 阅读(46) 评论(0) 推荐(0)
摘要: 解构Destructuring ◼ ES6中新增了一个从数组或对象中方便获取数据的方法,称之为解构Destructuring。 解构赋值是一种特殊的语法,它使我们可以将数组或对象“拆包”至一系列变量中。 ◼ 我们可以划分为:数组的解构和对象的解构。 ◼ 数组的解构: 基本解构过程 顺序解构  阅读全文
posted @ 2024-10-20 01:42 韩德才 阅读(38) 评论(0) 推荐(0)
摘要: 字面量的增强 ◼ ES6中对 对象字面量 进行了增强,称之为 Enhanced object literals(增强对象字面量)。 ◼ 字面量的增强主要包括下面几部分: 属性的简写:Property Shorthand 方法的简写:Method Shorthand 计算属性名:Computed 阅读全文
posted @ 2024-10-20 01:41 韩德才 阅读(18) 评论(0) 推荐(0)
摘要: ◼ 面向对象的三大特性:封装、继承、多态。 前面两个我们都已经详细解析过了,接下来我们讨论一下JavaScript的多态。 ◼ JavaScript有多态吗? 维基百科对多态的定义:多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口,或使用一个单一的符号来表示多个不同的类 阅读全文
posted @ 2024-10-20 01:41 韩德才 阅读(36) 评论(0) 推荐(0)
摘要: 原型继承关系 1.p1是Person的实例对象 2.obj是Object的实例对象 3.Function/Object/Foo都是Function的实例对象(__proto__ 都等于 Function.prototype) 4.原型对象默认创建时, 隐式原型都是指向Object的显式原型的(Obj 阅读全文
posted @ 2024-10-20 01:40 韩德才 阅读(106) 评论(0) 推荐(0)
摘要: 对象的方法补充 ◼ hasOwnProperty 对象是否有某一个属于自己的属性(不是在原型上的属性) ◼ in/for in 操作符 判断某个属性是否在某个对象或者对象的原型上 ◼ instanceof 用于检测构造函数(Person、Student类)的pototype,是否出现在某个实例 阅读全文
posted @ 2024-10-20 01:38 韩德才 阅读(35) 评论(0) 推荐(0)
摘要: 原型链的查找顺序 面向对象的特性–继承 ◼ 面向对象有三大特性:封装、继承、多态 封装:我们前面将属性和方法封装到一个类中,可以称之为封装的过程; 继承:继承是面向对象中非常重要的,不仅仅可以减少重复代码的数量,也是多态前提(纯面向对象中); 多态:不同的对象在执行时表现出不同的形态; ◼ 那 阅读全文
posted @ 2024-10-20 01:37 韩德才 阅读(70) 评论(0) 推荐(0)
摘要: 对象和函数的原型 认识对象的原型 ◼ JavaScript当中每个对象都有一个特殊的内置属性 [[prototype]],这个特殊的对象可以指向另外一个对象。 ◼ 那么这个对象有什么用呢? 当我们通过引用对象的属性key来获取一个value时,它会触发[[Get]]的操作; 这个操作会首先检查该 阅读全文
posted @ 2024-10-20 01:34 韩德才 阅读(22) 评论(0) 推荐(0)
摘要: 对象的增强知识补充 ◼ 在前面我们的属性都是直接定义在对象内部,或者直接添加到对象内部的: 但是这样来做的时候我们就不能对这个属性进行一些限制:比如这个属性是否是可以通过delete删除的?这个属性是否在forin遍历的时候被遍历出来呢? ◼ 如果我们想要对一个属性进行比较精准的操作控制,那么我们 阅读全文
posted @ 2024-10-20 01:30 韩德才 阅读(71) 评论(0) 推荐(0)
摘要: ◼ JavaScript历史的局限性: 长久以来,JavaScript 不断向前发展且并未带来任何兼容性问题; 新的特性被加入,旧的功能也没有改变,这么做有利于兼容旧代码; 但缺点是JavaScript 创造者的任何错误或不完善的决定也将永远被保留在JavaScript 语言中; ◼ 在ECM 阅读全文
posted @ 2024-10-20 01:27 韩德才 阅读(29) 评论(0) 推荐(0)
摘要: with语句的使用 with语句 扩展一个语句的作用域链。 <script> var obj = { message : "Hello World" } with (obj) { console.log(message) } </script> ◼ 不建议使用with语句,因为它可能是混淆错误和兼容 阅读全文
posted @ 2024-10-20 01:24 韩德才 阅读(15) 评论(0) 推荐(0)
摘要: ◼ 组合(Compose)函数是在JavaScript开发过程中一种对函数的使用技巧、模式: 比如我们现在需要对某一个数据进行函数的调用,执行两个函数fn1和fn2,这两个函数是依次执行的; 那么如果每次我们都需要进行两个函数的调用,操作上就会显得重复; 那么是否可以将这两个函数组合起来,自动 阅读全文
posted @ 2024-10-20 01:23 韩德才 阅读(53) 评论(0) 推荐(0)
摘要: ◼ 柯里化也是属于函数式编程里面一个非常重要的概念。 是一种关于函数的高阶技术; 它不仅被用于JavaScript,还被用于其他编程语言; ◼ 我们先来看一下维基百科的解释: 在计算机科学中,柯里化(英语:Currying),又译为卡瑞化或加里化; 是把接收多个参数的函数,变成接受一个单一参 阅读全文
posted @ 2024-10-20 01:22 韩德才 阅读(68) 评论(0) 推荐(0)
摘要: ◼ 函数式编程中有一个非常重要的概念叫纯函数,JavaScript符合函数式编程的范式,所以也有纯函数的概念; ◼ 纯函数的维基百科定义: 在程序设计中,若一个函数符合以下条件,那么这个函数被称为纯函数: 此函数在相同的输入值时,需产生相同的输出。 函数的输出和输入值以外的其他隐藏信息或状态无 阅读全文
posted @ 2024-10-20 01:20 韩德才 阅读(72) 评论(0) 推荐(0)
摘要: ◼ ES6中引用了rest parameter,可以将不定数量的参数放入到一个数组中: 如果最后一个参数是... 为前缀的,那么它会将剩余的参数放到该参数中,并且作为一个数组; ◼ 那么剩余参数和arguments有什么区别呢? 剩余参数只包含那些没有对应形参的实参,而arguments 对象包 阅读全文
posted @ 2024-10-20 01:17 韩德才 阅读(38) 评论(0) 推荐(0)
摘要: 函数属性和arguments ◼ 我们知道JavaScript中函数也是一个对象,那么对象中就可以有属性和方法。 ◼ 属性name:一个函数的名词我们可以通过name来访问; ◼ 属性length:属性length用于返回函数参数的个数; 注意:rest参数是不参与参数的个数的; 认识argume 阅读全文
posted @ 2024-10-20 01:15 韩德才 阅读(14) 评论(0) 推荐(0)
摘要: ◼ 在前面我们说过,JavaScript是支持函数式编程的 ◼ 在JavaScript中,函数是非常重要的,并且是一等公民: 那么就意味着函数的使用是非常灵活的; 函数可以作为另外一个函数的参数,也可以作为另外一个函数的返回值来使用; ◼ 所以JavaScript存在很多的高阶函数: 自己编写 阅读全文
posted @ 2024-10-20 01:11 韩德才 阅读(24) 评论(0) 推荐(0)
摘要: JavaScript内存管理 ◼ 不管以什么样的方式来管理内存,内存的管理都会有如下的生命周期: 第一步:分配申请你需要的内存(申请); 第二步:使用分配的内存(存放一些东西,比如对象等); 第三步:不需要使用时,对其进行释放; ◼ JavaScript会在定义数据时为我们分配内存。 ◼ 但是 阅读全文
posted @ 2024-10-20 01:02 韩德才 阅读(28) 评论(0) 推荐(0)
摘要: 初始化全局对象 Global Object(GO) ◼ js引擎会在执行代码之前,会在(堆内存)中创建一个全局对象:Global Object(GO) 该对象所有的作用域(scope)都可以访问; 里面会包含Date、Array、String、Number、setTimeout、setInter 阅读全文
posted @ 2024-10-20 00:57 韩德才 阅读(32) 评论(0) 推荐(0)
摘要: JavaScript代码的执行 ◼ JavaScript代码下载好之后,是如何一步步被执行的呢? ◼ 我们知道,浏览器内核是由两部分组成的,以webkit为例: WebCore:负责HTML解析、布局、渲染等等相关的工作; JavaScriptCore:解析、执行JavaScript代码; We 阅读全文
posted @ 2024-10-20 00:52 韩德才 阅读(42) 评论(0) 推荐(0)
摘要: 网页的解析过程 输入域名-->DNS域名解析-->IP地址-->找到对应的服务器-->服务器会返回一个html文件-->解析html文件如果遇到link标签下载CSS文件并解析,同时继续解析html文件,如果遇到script标签下载js文件并解析等到js文件下载解析好了以后继续解析html并生成DO 阅读全文
posted @ 2024-10-20 00:51 韩德才 阅读(132) 评论(0) 推荐(0)
摘要: 箭头函数arrowfunction ◼ 箭头函数是ES6之后增加的一种编写函数的方法,并且它比函数表达式要更加简洁: 箭头函数不会绑定this、arguments属性; 箭头函数不能作为构造函数来使用(不能和new一起来使用,会抛出错误); ◼ 箭头函数如何编写呢? (): 函数的参数 {} 阅读全文
posted @ 2024-10-20 00:37 韩德才 阅读(39) 评论(0) 推荐(0)