目录前言一、原型链继承原型链继承的概念原型链继承的不足二、借用构造函数继承借用构造函数继承的概念利用构造函数继承的不足三、组合继承(原型链继承+构造函数继承)组合继承的概念组合继承的缺陷四、寄生组合性继承寄生组合性继承的概念寄生组合性继承的优点多重继承多重继承的概念总结 前言在JS中既然没有类,那继承也是没有的,但面对家财万贯的家产时,我们又岂能无动于衷呢?于是我们想到了用模拟的方式,实现继承。
转载 2024-10-22 07:20:58
32阅读
前端为什么需要模块化?JS作为一门脚本语言,在ES6之前是没有模块化这个概念的。所以多人协作开发过程中,在引入各种各样的js文件后,代码结构就会变得相当复杂,很容易引起全局变量命名冲突等问题。情景举例我们先看一个情景:分配任务让小明负责编写 a.js 和 b.js ,小红负责编写 c.js 。小明在 a.js 定义了一个变量 f
文章目录ES5新增方法数组方法字符串方法对象方法错误处理try catch处理throw抛出错误对象错误类型浅拷贝和深拷贝 ES5新增方法ES5 中给我们新增了一些方法,可以很方便的操作数组或者字符串,这些方法主要包括数组方法迭代(遍历)方法:forEach()、map()、filter()、some()、every()array.forEach(function(currentValue, i
JavaScript在前端领域占据着绝对的统治地位,目前更是从浏览器到服务端,移动端,嵌入式,几乎所有的所有的应用领域都可以使用它。技术圈有一句很经典的话“凡是能用JavaScript实现的东西,最后都会用JavaScript实现”。Excel 电子表格自 1980 年代以来一直为各行业所广泛使用,至今已拥有超过3亿用户,大多数人都熟悉 Excel 电子表格体验。许多企业在其业务的各个环节中使用了
概述map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。语法 array.map(callback[, thisArg])参数 callback原数组中的元素经过该方法后返回一个新的元素。 currentValuecallback 的第一个参数,数组中当前被传递的元素。indexcallback 的第二个参数,数组中当前被传递
转载 2024-05-17 16:53:03
135阅读
最近的一个项目使用的是React+React-router+Redux框架,刚开始编写代码的时候,客户的需求不明确,没有明确要求兼容IE8,当第一个版本出来之后,用户发现不能在IE8下使用,才提出兼容IE8的事情。但当时整体的代码框架和主要功能都已经实现,如果更换框架来实现,相当于放弃前面几个月的React代码重写。这带来的工作量是难以估计的。      查找网上的R
转载 8月前
0阅读
动态导入是JavaScript ES2019中新增的语法特性,它可以通过将代码按需导入,从而实现更加高效的加载方式。动态导入允许用户在运行时动态地加载模块,这是ES6中静态导入所无法实现的。在实际运用当中,我们可以通过导入语法结合WebPack等打包工具,来构建出一个按需加载的前端工程,实现对运行时依赖的处理。通过动态导入,我们可以在代码运行时才加载需要的模块,而不是将所有的模块一次性加载,这样一
转载 2024-04-20 20:14:02
357阅读
创建对象我们开始可以用Object构造函数或者对象字面量来快速创建对象,但使用这种方式创建多个对象时会产生大量重复代码,所以我们有了以下几种创建对象的方式。(1)工厂模式function createPerson(name, age,sex){ //传入的参数可以类比成送入工厂的原材料 var o = new Object(); o.name = name;
       1995年,JavaScript作为网景浏览器的一部分首次发布,起初并不叫JavaScript,而是叫LiveScript,但是因为当时Java正火,也算是为了搭上java的顺风车,于是改成了JavaScript,然而二者一点关系也没有。        1996年的时候,网景将JavaScript提交给了
转载 2024-04-22 05:54:46
38阅读
ES6模块是静态化的设计思想,使得编译时就能确定模块之间的依赖关系,以及输入和输出的变量。 ES6模块自动采用严格模式,即使没有在模块的头部添加use strict。 在模块当中,this受到了限制,顶层的this指向undefined,即不应该在顶层代码中使用this。 模块功能主要由export和import两个命令实现,export命令用于规定模块的对外接口,import命令用于输入其他模块
this的指向在 ES5 中,其实 this 的指向,始终坚持一个原理:this 永远指向最后调用它的那个对象下面我们来看一个最简单的例子:(例子均来自参考资料中的经典例子)例 1:var name = "windowsName"; function a() { var name = "Cherry"; console.log(this.name); // win
1、正常使用Promisevar p = new Promise(function(resolve, reject){ console.log('执行') setTimeout(function(){ resolve(2) }, 1000) }) p.then(function(res){ console.log('suc',res) },funct
转载 2024-03-28 11:30:31
105阅读
ES5的继承方式目录ES5的继承方式1 构造函数继承1基本思想2 优缺点2 原型链继承1 思想2优缺点3 代码3 组合继承1 思想:2 优缺点4 寄生组合继承1 思想2 优点:5 多重继承(寄生组合升级版)1 思想2 优缺点3 附注:6 ES5继承总结1 构造函数继承1基本思想在子类构造函数中通过使用apply()和call()方法调用父类的构造函数。2 优缺点优点:1)对于子类实例对象而言,从父
前言  此文介绍了ES6中集合相关的Set和Map结构,跟随此文你将了解到。 ES6为什么引入Set结构强弱引用与垃圾回收 WeakMap之polyfill实现 WeakMap的应用场景Set  Set 是值的集合,类似数组,元素有序且唯一。属性方法 Set.prototype.size 用于返回Set实例中的元素个数var set = new Set([1, 2]) set.size // 2
ES5新语法主要是体现在Object和、Array操作,同时涉及到JSON、 Function、Date 和 String类型上。1.Object   ES5最大的特点是对象扩展很多方法。     新建对象:create( 新建一个"干净"的对象,这里的“干净”指的是没有原型链。)     语法:Object.crea
转载 9月前
43阅读
数组的扩展扩展运算符Array.from()Array.of()数组实例的 copyWithin()数组实例的 find() 和 findIndex()数组实例的 fill()数组实例的 entries(),keys() 和 values()数组实例的 includes()数组实例的 flat(),flatMap()数组的空位 1.扩展运算符含义扩展运算符(spread)是三个点(...)。它好比
转载 2024-10-11 10:28:16
22阅读
模拟两个成功的请求(不考虑reject)function request1() { return new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve("数据1") },1000) }) } function
转载 11月前
16阅读
安装Elasticsearch在es 5.0以后的版本需要java版本为1.8以上。否则启动时就会报错。学习ES第一步就是安装运行它!JAVA安装地址:www.java.comES下载地址:https://www.elastic.co/downloads/elasticsearchtar xf elasticsearch-*.zip ;cd elasticsearch-*执行以下命令可在前台启动:
转载 2024-09-25 15:31:29
49阅读
es5实现let和const一、letlet的特性首先我们来看看let的特性,let用来声明一个变量:在块级作用域内有效不能重复声明不能预处理,不存在变量提升,即未声明之前的代码不能调用如何实现我们可以通过匿名函数和闭包的形式来模拟let(function(){ var c =3 console.log(c) //1 })() console.log(c) //c is not defi
转载 2024-04-03 11:20:52
80阅读
文章目录详解ES5类的实现和继承的实现1. 前言2. ES5 中类的实现3. ES5 中类继承的实现3.1 原型链继承3.2 盗用构造函数实现继承3.3 组合继承(原型链 + 盗用构造函数)4. 总结 详解ES5类的实现和继承的实现1. 前言ES5 中类的实现以及类的继承是 JS 中一个不得不跨越和征服的高点。不论是在学习的过程中为了更好的理解 ES 6 class 的实现方法以及学习原型链和构
转载 2024-04-01 17:33:51
65阅读
  • 1
  • 2
  • 3
  • 4
  • 5