【JavaScript】ES6常用知识汇总

前端常见知识点汇总(ES6,Vue,axios,Node.js,npm,webpack) 有了前后端的相关的知识,我们就从0到1写一个前后端分离项目了, 后面会继续更新谷粒学院项目。 敬请期待!!!ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?要讲清楚这个问题,需要回顾历史。1996 年 11 月,JavaScript 的创造者 Net 阅读详情

ES6模块化如何使用,开发环境如何打包?

1.模块化的基本语法

/* export 语法 */
// 默认导出
export default {
  a: '我是默认导出的',
}
// 单独导出
export function fn1() {
  console.log('我是函数1')
}
export function fn2() {
  console.log('我是函数2')
}
/* import 语法 */
// 导入
// 默认导入
import util1 from './demo'
// 单独导入
import { fn1, fn2 } from './demo'

console.log(util1)
fn1()
fn2()

2.开发环境配置

  • Babel
    ES6新语法需要进行编译,即转换为ES5或者更早版本的语法,这个时候就需要Babel来进行转换
    Babel是什么?Babel是一个 JavaScript 编译器,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。Babel中文网
  • Webpack模块化工具

3.关于JS众多模块化标准

class和普通构造函数有何区别?

1.JS构造函数

function MathHandle(x, y) {
  this.x = x
  this.y = y
}
MathHandle.prototype.add = function () {
  return this.x + this.y
}
var m = new MathHandle(1, 2)
console.log(m.add()) // 3

2.class基本语法

class MathHandle {
  constructor(x, y) {
    this.x = x
    this.y = y
  }
  add() {
    return this.x + this.y
  }
}
const m = new MathHandle(1, 2)
console.log(m.add()) // 3

3.语法糖

/* 本质只是一个语法糖 */
console.log(typeof MathHandle) // 'function'
console.log(MathHandle === MathHandle.prototype.constructor) // true
console.log(m.__proto__ === MathHandle.prototype) // true

4.继承

// class 的继承
class Father {
  constructor(name, age) {
    this.name = name
    this.age = age
  }
  money() {
    console.log('我有100元钱')
  }
  sum() {
    console.log(this.name + '有' + this.age + '岁')
  }
}
// extends 继承父类
class Son extends Father {
  constructor(name, age) {
    super(name, age) // super 调用了父类中的构造函数
  }
}
var son = new Son('小鑫', 22)
//可以使用父类的方法
son.money() // 我有100元钱
son.sum() // 小鑫有22岁

5.总结

class更加贴合面向对象的写法;更加易读、理解;本质还是语法糖,还是使用 prototype 实现的

Promise的基本使用和原理

为了解决“回调地狱”(链式发送ajax请求)而出现的一种解决方案,比如下面这种情况

$.ajax({
    url: 'http:/localhost:3000/data',
    success: function (response) {
        console.log(response);
        $.ajax({
            url: 'http:/localhost:3000/data2',
            success: function (response) {
                console.log(response);
                $.ajax({
                    url: 'http:/localhost:3000/data3',
                    success: function (response) {
                        console.log(response);
                    }
                })
            }
        })
    }
})

这个时候就需要使用promise来处理ajax请求,主要分为以下四个步骤:

  • new Promist实例,而且要return;
  • new Promist时要传入函数,函数有resolve reject两个参数;
  • 成功时执行resolve(),失败时执行reject()
  • .then .catch监听结果
/**
 * @description 基于Promise发送Ajax请求
 * @param {String} url 请求地址
 */
function queryDate(url) {
  const promise = new Promise(function (resolve, reject) {
    const xhr = new XMLHttpRequest()
    xhr.open('get', url)
    xhr.send()
    if (xhr.onload) {
      // onload 只有状态码为4时才能回调一次函数
      xhr.onload = function () {
        if (xhr.status === 200) {
          // 处理正常情况
          resolve(xhr.responseText)
        } else {
          // 处理异常的情况
          reject('服务器错误')
        }
      }
    } else {
      // 支持低版本ie
      // onreadystatechange是只要返回的状态码只要变化时就回调一次函数
      xhr.onreadystatechange = function () {
        if (xhr.readyState === 4 && xhr.status === 200) {
          // 处理正常情况
          resolve(xhr.responseText)
        } else {
          // 处理异常情况
          reject('服务器错误')
        }
      }
    }
  })
  return promise
}

// 发送多个ajax请求并且保证顺序 链式调用
// 第一次ajax请求
queryData('http://localhost:3000/data')
  .then(function (data) {
    console.log(data)
    // 第二次ajax请求
    return queryData('http://localhost:3000/data2')
  })
  .then(function (data) {
    console.log(data)
    // 第三次ajax请求
    return queryData('http://localhost:3000/data3')
  })
  .then(function (data) {
    console.log(data)
  })

ES6其他常用的功能

  • let/const
  • 多行字符串/模板变量
  • 结构赋值
  • 块级作用域
  • 函数默认参数
  • 箭头函数(注意:是普通js函数的补充,修正this的指向)

附带上一张学习ES6基础时的思维导图

2024 前端javaScript+ES6 2024 前端javaScript+ES6 阅读详情

相关推荐

【AutoSar CP】SoAd模块

比如对于特定的PDU,其PduId在程序编译时就确定了,但是在代码运行中,该PduId可能需要发送到不同的远端ip,这时就需要用SoAd来设置连接远端地址信息。SoAdSocketConnectionGroup(连接参数)SoAdSocketRoute(接收数据)SoAdRoutingGroup(开关)SoAdPduRoute(发送数据)

至道无难,唯嫌拣择。 1684

ES6(JS)

ES6(JS)笔记

Yes_You_Can 的博客 1万+

【技术解析】华为智算中心:昇腾AI算力与无损网络如何驱动大模型训练

本文深入解析了华为智算中心如何通过昇腾AI算力与超融合以太无损网络的协同,驱动千亿参数大模型的高效训练。昇腾NPU提供专用计算引擎,而基于RoCE的无损网络则通过PFC、ECN等技术确保万卡集群间的高带宽、零丢包通信,实现算力利用率最大化,解决大规模AI训练的核心瓶颈。

weixin_29311017的博客 191

js中的ES6

人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成世界超级大师的必要条件。——格拉德威尔《一万小时定律》

zouzxxi的博客 2869

网闸的基本配置

本文详细介绍了网闸的基本配置流程,包括物理连接与初始化、网络基础配置、核心数据交换策略配置、安全增强配置、管理与运维以及测试验证等关键步骤。网闸通过在物理隔离环境下建立"数据摆渡通道",实现特定业务数据的安全交换。配置时应遵循最小化、单向化、内容控制和审计原则,确保只开放必要通道,优先采用单向传输,进行内容安全检查并记录操作日志。不同厂商网闸的配置界面可能不同,但核心逻辑是相通的。

qq_39980997的博客 1839

基于STM32的无人机智能避障与路径规划系统设计

本文详细介绍了基于STM32的无人机智能避障与路径规划系统设计,涵盖硬件选型、传感器组合、软件架构及算法实现。通过多传感器数据融合和改进的VFH+算法,系统在复杂环境中实现92%以上的避障成功率。STM32微控制器的实时性和低功耗特性为无人机自主导航提供了可靠保障,适用于工业巡检、仓储物流等场景。

blockchain9miner的博客 876

JavaScript高级——ES6基础入门

ES6(ECMAScript 6),也被称为ES2015,是JavaScript的第六个版本.它于2015年发布,并在现代JavaScript开发中扮演了重要的角色.看千遍,不如自己动手写一遍遇到问题不要怕,微笑着面对它记笔记。

明哥 1万+

Ubuntu20.04下运行VINS系列:VINS-Mono、VINS-Fusion和GVINS

安装好了VINS-Mono所需的ROS noetic、Eigen3.4.0、Ceres2.10和OpenCV4.2.0等。VINS-Mono是在ROS melodic以及Ceres1的环境下开发的,因此需要适配高版本的环境。

zardforever123的博客 2万+

js总结篇之—ES6 (看完你就学会整个js)

1.ECMAScript ## 介绍 * 一般来说ECMAScript可以认为是javascript * javascript对ECMAScript进行了扩展 ### javascript组成 * ECMAScript(核心) * 扩展-->浏览器端 * DOM * BOM * 扩展-->服务器端 * NODEJS ## ES版本变化 1. ES5 发布于2009年 2. ES6 发布于2015年 3. ES7 发布于2016年 2.数组函数的扩展 * Array.prot

Sakura1921的博客 6250

MIPI CSI-2 协议解析

CSI-2标准协议前言一、Overview of CSI-2二、CSI-2 layer Definitions三、 Camera Control Interface(CCI)3.1 数据传输协议(Data Transfer Protocol)3.1.1 消息类型(Message Type)3.1.2 读写操作(Read/Write Operations)3.1.2.1 随机位置单次读3.1.2.2 当前位置单次读3.1.2.3 随机位置连续读3.1.2.4 当前位置连续读3.1.2.5 随机位置单次写3.1

Lucky 3万+

【项目实战】分布式日志系统 之 Exactly-once 语义:确保数据处理的精确性

在分布式系统的数据传输与处理中,是一种核心可靠性保障,其目标是确保数据“仅被处理一次”——既不重复(避免多次处理),也不遗漏(避免未处理)。与,二者共同保障数据处理的精确性。Exactly-once 语义是分布式系统中数据可靠性的高级目标,其核心通过“幂等设计”(解决重复问题)和“分布式事务”(解决原子性问题)实现。在实际应用中,常结合 At-Least-Once 语义与幂等性,或通过事务 API 与唯一 ID 去重的组合,平衡可靠性与系统性能。

奶爸的编程之路,也就一周冷个三天 166

JavaScript-ES6语法

ECMAScript 6,简称ES6,是JavaScript语言的一次重大更新。它于2015年发布,是原来的ECMAScript标准的第六个版本。ES6带来了大量的新特性,包括箭头函数、模板字符串、let和const关键字、解构、默认参数值、模块系统等等,大大提升了JavaScript的开发体验。由于VUE3中大量使用了ES6的语法,所以ES6成为了学习VUE3的门槛之一更加简洁:ES6引入了一些新的语法,如箭头函数、类和模板字符串等,使代码更加简洁易懂。

weixin_44201223的博客 5006

企业如何开展BI建设--指标体系建设

很多企业的数字化转型工作都是从做BI项目开始的,很多企业认为,BI就是做指标大屏,所以做了很多的驾驶舱,也做了很多指标,有从系统取的,有手工填报的,甚至手工填报的比例占到了70%,最终BI沦为了填报系统,业务认为BI就是把从线下的微信沟通转到了线上录入展示,并没有给业务代来任何提升,久而久之,BI大屏就没人关心,公司高层也认为数据都是填报的,都经过了加工处理,这种数据不可信,不能反映业务开展的实际。其实在BI系统建设之前,我们首先要做的就是要梳理企业的指标,到底我们要展示哪些指标?

262

JavaScript ES6知识点汇总(上)

reflect是ES6引入的一个新的对象,他的主要作用有两点,一是将原生的一些零散分布在object、function或者全局函数里的方法(如apply、delete、get、set等等),统一整合到Reflect上,这样可以更加方便更加统一的管理一些原生API,其次就是因为Proxy可以改写默认的原生API,而Reflect也起到了一个备份原生API的作用。简单介绍下,js es6的一些新特性。这里是万物之恋,我们下次再见了。

weixin_47340917的博客 641

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

js-es6知识汇总(3)新增语法

ES6知识汇总 新增语法 let 块级作用域的引入 { var a = 5; let b = 6; } console.log(a); //5 console.log(b); //b is undefined let声明的变量只在所处于的块级有效 注:使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特性。 不存在变量提升 console.log(a); // a is not defined let a = 20; 暂时性死区 var声明的变量可以在声

m0_47717596的博客 663

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

javascript高级 es6知识点汇总(未完持续更新)

//set意为集合,所有的自定属性

hlonelier的博客 184

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

es6 提取数组对象一部分_ES6-ES2020JS知识点汇总

使用const或者let定义的变量需要先声明,不允许重复声明 。const // 定义静态变量 --> 定义之后不允许修改 let // 定义局部变量 只有在局部作用域中才有作用,如{}、function、for循环(比较特殊)、while循环 // let const 好处:防止变量污染 var 定义变量,变量提升。用const定义对象和数组,可以随意添加,不会报错。ES6 明确规定,如...

weixin_39541189的博客 447

js-es6知识汇总(1) 原型与原型链

js-es6知识汇总(1)原型与原型链 1.面向过程与面向对象 1.1面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用。 1.2面向对象 面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。 1.3面向过程与面向对象对比 面向过程 面向对象 优点 性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用的面向过程编程。 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的

m0_47717596的博客 263

js map取值_细品原生JS从初级到高级知识点汇总(二)

作者:火狼1转发链接:https://juejin.im/post/5daeefc8e51d4524f007fb15目录细品原生JS从初级到高级知识点汇总(一)细品原生JS从初级到高级知识点汇总(二)本篇细品原生JS从初级到高级知识点汇总(三)细品原生JS从初级到高级知识点汇总(四)小编建议小伙们从第一篇开始,按照顺序来看,更清晰明了。1.7.6 寄生组合继承function Cat(name){...

weixin_39970166的博客 192

ES6面试知识点和什么是语法糖

ES6是什么,为什么要学习它,不学习ES6会怎么样? 答:ES6是新一代的JS语言标准,对部分JS语言核心做了升级优化,规范了JS的使用标准,新增了JS原生方法,使得JS使用更加规范,更加优雅,更适合大型应用开发。 Babel是什么,有什么作用? 答:Babel是一个ES6的转码器,可以将ES6代码转为ES5代码,以便兼容那些还没支持ES6的平台。 let有什么用,有了var为什么还要用let 答:在ES6之前,声明变量只能用var,var方式声明变量不太合理,因为在ES5中,var是函.

qq_51066068的博客 367

前端JavaScript 面试题汇总

前端js面试题汇总

qq_38144981的博客 5455

JS + ES6 高频面试题合集

JS + ES6 高频面试合集❗ ❗ ❗ ❗ ❗

蜗牛的博客 2777

前端面试知识点汇总

JS知识点: js的主要知识点汇总 Vue知识点: Vuex的知识汇总 uniapp知识点: uniapp的整体知识框架汇总

qq_36981190的博客 203

【转】js-ES6新特性汇总(一图全览)

参见:ES 6 新特性汇总(一图全览)

李思苇 397

JavaScript ES6 相关知识点梳理 (未更新完)

1. 什么是ES6 首先 可以确认的是 es6是新一代的js语言标准 ,新增了js原生方法 ,使用起来更加规范,代码看起来更加优雅 2.与ES5、ES6和ES2015相比有哪些区别 ES2015特指在2015年发布的新一代JS语言标准,ES6泛指下一代JS语言标准,包含ES2015、ES2016、ES2017、ES2018等。现阶段在绝大部分场景下,ES2015默认等同ES6。ES5泛指上...

一枚前端猿 梦想是不秃头 237
上一篇: 【JavaScript】Ajax简单封装
下一篇: 【Vue】什么虚拟 dom(virtial dom)?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值