摘要:
JavaScript面向对象 对象类型的使用 在数据类型中我们提到还有一种特别的类型:对象类型。 对象类型涉及到JavaScript的各个方面,所以掌握对象类型非常重要; 对象类型是一种存储键值对(key-value)的更复杂的数据类型; 为什么需要对象类型呢? 基本数据类型可以存储一些简单的值,但 阅读全文
摘要:
程序中的foo,bar,baz var foo ="xxxx"//变量 var bar = { //函数 name:"xxxx" } 它们通常被用来作为函数、变量、文件的名词; 目前已经编程了计算机编程的术语一部分; 但是它们本身并没有特别的用途和意义; 常被称之为“伪变量”(metasyn 阅读全文
摘要:
认识循环语句 1.在开发中我们经常需要做各种各样的循环操作: 比如把一个列表中的商品、歌曲、视频依次输出进行展示; 比如对一个列表进行累加计算; 比如运行相同的代码将数字1 到10 逐个输出; 2.循环是一种重复运行同一代码的方法。 如果是对某一个列表进行循环操作,我们通常也会称之为遍历(t 阅读全文
摘要:
JavaScript分支语句 程序执行顺序 顺序 >从上向下,顺序执行代码 分支 >根据条件判断,决定执行代码的分支 循环 >让特定代码重复执行 代码块的概念 在开发中,一行代码很难完成某一个特定的功能,我们就会将这些代码放到一个代码块中 // 一个代码块 { var num1 = 10; var 阅读全文
摘要:
JavaScript基础运算符 几乎所有的编程语言都有各种各样的运算符(也被称之为操作符,operators) 运算符和运算元 运算元 运算元——运算符应用的对象。 ✓ 比如说乘法运算5 * 2,有两个运算元; ✓ 左运算元5 和右运算元2; ✓ 有时候人们也称其为“参数”; 如果一个运算符对应的只 阅读全文
摘要:
认识JavaScript变量 变量的定义,规范等 一个变量,就是一个用于存放数值的容器; 这个数值可能是一个用于计算的数字,或者是一个句子中的字符串,或者其他任意的数据; 变量的独特之处在于它存放的数值是可以改变的 变量的命名规则 变量的声明:在JavaScript中声明一个变量使用var关键字(v 阅读全文
摘要:
ES5 异步代码的处理 <script> // 1.设计一个什么地方是传入参数什么地方是传入回调函数的函数 function execode(counter,successCallback,failCallback){ // 异步任务:调用某个函数不会立马返回结果 setTimeout(()=>{ 阅读全文
摘要:
监听对象的操作 ◼ 我们先来看一个需求:有一个对象,我们希望监听这个对象中的属性被设置或获取的过程 通过我们前面所学的知识,能不能做到这一点呢? 其实是可以的,我们可以通过之前的属性描述符中的存储属性描述符来做到; 案例: //2.监听所有的属性(使用Object.defineProperty 阅读全文
摘要:
ES7 - Array Includes ◼ 在ES7之前,如果我们想判断一个数组中是否包含某个元素,需要通过 indexOf获取结果,并且判断是否为 -1。 ◼ 在ES7中,我们可以通过includes来判断一个数组中是否包含一个指定的元素,根据情况,如果包含则返回 true,否则返回false。 阅读全文
摘要:
新的ECMA代码执行描述 ◼ 在执行学习JavaScript代码执行过程中,我们学习了很多ECMA文档的术语: 执行上下文栈:Execution Context Stack,用于执行上下文的栈结构; 执行上下文:Execution Context,代码在执行之前会先创建对应的执行上下文; 变量 阅读全文
摘要:
解构Destructuring ◼ ES6中新增了一个从数组或对象中方便获取数据的方法,称之为解构Destructuring。 解构赋值是一种特殊的语法,它使我们可以将数组或对象“拆包”至一系列变量中。 ◼ 我们可以划分为:数组的解构和对象的解构。 ◼ 数组的解构: 基本解构过程 顺序解构 阅读全文
摘要:
字面量的增强 ◼ ES6中对 对象字面量 进行了增强,称之为 Enhanced object literals(增强对象字面量)。 ◼ 字面量的增强主要包括下面几部分: 属性的简写:Property Shorthand 方法的简写:Method Shorthand 计算属性名:Computed 阅读全文
摘要:
◼ 面向对象的三大特性:封装、继承、多态。 前面两个我们都已经详细解析过了,接下来我们讨论一下JavaScript的多态。 ◼ JavaScript有多态吗? 维基百科对多态的定义:多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口,或使用一个单一的符号来表示多个不同的类 阅读全文
摘要:
原型继承关系 1.p1是Person的实例对象 2.obj是Object的实例对象 3.Function/Object/Foo都是Function的实例对象(__proto__ 都等于 Function.prototype) 4.原型对象默认创建时, 隐式原型都是指向Object的显式原型的(Obj 阅读全文
摘要:
对象的方法补充 ◼ hasOwnProperty 对象是否有某一个属于自己的属性(不是在原型上的属性) ◼ in/for in 操作符 判断某个属性是否在某个对象或者对象的原型上 ◼ instanceof 用于检测构造函数(Person、Student类)的pototype,是否出现在某个实例 阅读全文
摘要:
原型链的查找顺序 面向对象的特性–继承 ◼ 面向对象有三大特性:封装、继承、多态 封装:我们前面将属性和方法封装到一个类中,可以称之为封装的过程; 继承:继承是面向对象中非常重要的,不仅仅可以减少重复代码的数量,也是多态前提(纯面向对象中); 多态:不同的对象在执行时表现出不同的形态; ◼ 那 阅读全文
摘要:
对象和函数的原型 认识对象的原型 ◼ JavaScript当中每个对象都有一个特殊的内置属性 [[prototype]],这个特殊的对象可以指向另外一个对象。 ◼ 那么这个对象有什么用呢? 当我们通过引用对象的属性key来获取一个value时,它会触发[[Get]]的操作; 这个操作会首先检查该 阅读全文
摘要:
对象的增强知识补充 ◼ 在前面我们的属性都是直接定义在对象内部,或者直接添加到对象内部的: 但是这样来做的时候我们就不能对这个属性进行一些限制:比如这个属性是否是可以通过delete删除的?这个属性是否在forin遍历的时候被遍历出来呢? ◼ 如果我们想要对一个属性进行比较精准的操作控制,那么我们 阅读全文
摘要:
◼ JavaScript历史的局限性: 长久以来,JavaScript 不断向前发展且并未带来任何兼容性问题; 新的特性被加入,旧的功能也没有改变,这么做有利于兼容旧代码; 但缺点是JavaScript 创造者的任何错误或不完善的决定也将永远被保留在JavaScript 语言中; ◼ 在ECM 阅读全文
摘要:
with语句的使用 with语句 扩展一个语句的作用域链。 <script> var obj = { message : "Hello World" } with (obj) { console.log(message) } </script> ◼ 不建议使用with语句,因为它可能是混淆错误和兼容 阅读全文