随笔分类 -  JS

摘要:映射 映射可以理解为字典,不同于数组,允许使用任何值作为索引,映射的键是唯一的,若传入重复的键值对,会用新的值代替旧的值 创建映射 let m = new Map() let n = new Map([ // Map(2) { 'one' => 1, 'two' => 2 } ["one", 1], 阅读全文
posted @ 2021-12-15 15:18 邢韬 阅读(40) 评论(0) 推荐(0) 编辑
摘要:Set集合 集合的使用 创建集合,参数类型没有明确限制,但必须是一个可迭代对象,集合是不能包含重复值的 let s = new Set() let t = new Set([1, s]) let uniqe = new Set("Mississippi") // "M", "i", "s", "p" 阅读全文
posted @ 2021-12-15 13:28 邢韬 阅读(40) 评论(0) 推荐(0) 编辑
摘要:文件目录如下 静态加载 静态加载模块,保证导入的值在代码运行之前就可以使用 import {add} from "./module.js" add(1, 2) // 3 动态加载 ES2020引入import()支持动态加载模块,如通过网络传输的模块,由于动态加载模块是异步的,所以要配合then或 阅读全文
posted @ 2021-12-14 21:27 邢韬 阅读(34) 评论(0) 推荐(0) 编辑
摘要:call和apply允许间接调用一个函数 call和apply可以改变this指向,或者可以说是将一个函数作为某个对象的方法进行调用 call将参数逐一传入,apply是以数组形式进行传入 const o = { x: 1 } const f = function(y, z){ return thi 阅读全文
posted @ 2021-12-13 21:06 邢韬 阅读(30) 评论(0) 推荐(0) 编辑
摘要:设置默认参数,默认参数可以使用前面的形参来定义 const rectangle = (width, height = width * 2) => {} 剩余形参,是个数组,必须放在最后,若不传就是空 function max(first, ...args){ let maxVal = first f 阅读全文
posted @ 2021-12-13 21:04 邢韬 阅读(65) 评论(0) 推荐(0) 编辑
摘要:构造函数调用会创建一个新对象,一般不使用return,会默认返回当前对象 使用return会有2种情况 1.返回一个新的对象,则会变成该新对象 2.返回一个原始值,则还是返回当前对象,不会返回该原始值 const Obj1 = function(){ this.name = "abc" } cons 阅读全文
posted @ 2021-12-13 21:01 邢韬 阅读(101) 评论(0) 推荐(0) 编辑
摘要:嵌套函数不会包含函数的this值!!! 如果嵌套函数被当做方法调用,this就指向调用他的对象 若果嵌套函数被当做函数调用,this就指向全局对象或者undefined ES6之前,解决办法可以使用bind来改变其this指向 ES6之后,解决这个方法的一个技巧是使用箭头函数,箭头函数会继承外部的t 阅读全文
posted @ 2021-12-13 20:58 邢韬 阅读(374) 评论(0) 推荐(0) 编辑
摘要:数组 扩展操作符 ES6中可使用扩展操作符在一个数组字面量中包含另一个数组 let a = [1, 2, 3] let b = [0, ...a, 4] // [0, 1, 2, 3, 4] // 扩展操作符可用于任何可迭代对象 let digits = [..."adsadassfasfasfsf 阅读全文
posted @ 2021-12-09 21:01 邢韬 阅读(76) 评论(0) 推荐(0) 编辑
摘要:如果想终结并非最近的循环或switch,可以使用标签来控制 // 给外侧循环打标签后,在内侧循环使用continue或break也可以操作外侧循环 test1: for (let i = 0; i < 10; i++) { console.log(" ", i) for (let j = 0; j 阅读全文
posted @ 2021-12-06 21:00 邢韬 阅读(32) 评论(0) 推荐(0) 编辑
摘要:ES6添加了一个新的循环语句:for/of for/of本质是对可迭代对象进行迭代操作 例: for(let element of data){ // data.push(sum) // 这样会创造一个无穷的循环,因为迭代永远不能触及最后一个数组 sum += element } 若对象不可迭代,则 阅读全文
posted @ 2021-12-06 20:52 邢韬 阅读(56) 评论(0) 推荐(0) 编辑
摘要:简介 在原型写法中,我们常用Object.create()和Object.setPrototypeOf(),记录一下自己的学习理解 Object.create() 创建一个对象,直接上代码 function SuperClass(name) { this.name = name this.color 阅读全文
posted @ 2021-12-01 19:17 邢韬 阅读(320) 评论(0) 推荐(0) 编辑
摘要:prototype 函数的对象的原型,给其它对象提供共享属性,函数所独有的。 它的作用是:new对象的时候,告诉新创建的实例他的构造函数是谁,有哪些共享属性和方法 如下所示,t 中并没有 M,但是有 x 和 y,说明 M 没有共享,但是 x 和 y共享了 __proto__ __proto__,隐式 阅读全文
posted @ 2021-11-28 23:59 邢韬 阅读(80) 评论(0) 推荐(0) 编辑
摘要:如下述,最终返回的结果是"Mary Doe" 为什么?this.firstName不应该是undefined吗,为什么是"Mary"呢 正常情况,this应该指向调用当前方法的对象也就是person 但是call方法会改变this的指向,使其指向第一个参数的对象 obj1.method.call(o 阅读全文
posted @ 2021-11-28 15:41 邢韬 阅读(330) 评论(0) 推荐(0) 编辑
摘要:为对象添加原型 const obj = { x:1, y:2, add:function(a, b){ return a + b } } 使用prototype添加原型 const Empty = function(){} Empty.prototype = obj const empty = ne 阅读全文
posted @ 2021-11-27 23:36 邢韬 阅读(57) 评论(0) 推荐(0) 编辑
摘要:Promise对象 Promise 对象代表了未来将要发生的事件,开创一个异步线程,用来传递异步操作的消息。 Promise 对象有以下两个特点: 1.对象的状态不受外界影响。Promise 对象代表一个异步操作,有三种状态: pending: 初始状态,不是成功或失败状态 fulfilled: 意 阅读全文
posted @ 2021-08-13 14:28 邢韬 阅读(455) 评论(0) 推荐(0) 编辑
摘要:当使用node运行以下代码时 import { Node, LinkedList } from "./07.js" node index.js 会报错提示: Warning: To load an ES module, set "type": "module" in the package.json 阅读全文
posted @ 2021-08-07 16:12 邢韬 阅读(237) 评论(0) 推荐(0) 编辑
摘要:super super通常用语继承中,例如: 1 class Node{ 2 constructor(element){ 3 this.element = element 4 this.next = undefined 5 } 6 log(){ 7 console.log("test") 8 } 9 阅读全文
posted @ 2021-08-02 16:45 邢韬 阅读(39) 评论(0) 推荐(0) 编辑
摘要:1、 基本数据类型和引用数据类型 ES包括两种不同的类型: 1)基本数据类型 2)引用数据类型 基本数据类型就是简单的数据段,引用数据类型是指由多个值构成的对象 2、 常见的基本数据类型有 Number、String、Boolean、Null、Undefined。基本数据类型是按值访问,因为可以直接 阅读全文
posted @ 2021-07-16 13:53 邢韬 阅读(628) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示