广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何将JavaScript代码改成ES6语法
  • 410
分享到

如何将JavaScript代码改成ES6语法

2024-04-02 19:04:59 410人浏览 八月长安
摘要

这篇文章给大家分享的是有关如何将javascript代码改成es6语法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。目录* 核心例子 * 修改成静态变量(co

这篇文章给大家分享的是有关如何将javascript代码改成es6语法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

目录

* 核心例子
* 修改成静态变量(const)或块级变量(let)
 * 开始修改
 * 疑问解释(重复定义会发生什么)
 * 疑问解释(let的块级作用域是怎样的)
 * 疑问解释(const定义的变量在基础数据类型和引用类型中的差异)
* 修改成Promise的形式
 * 预备知识(回调函数是什么)
 * 预备知识(如何把回调函数改为Promise)
 * 开始修改
* 修改成箭头函数(Arrow Function)
 * 预备知识(箭头函数是什么)
 * 预备知识(箭头函数函数中的this是个坑)
 * 开始修改
* 修改拼接字符串成模板字符串
 * 预备知识(字符串的拼接方式)
 * 预备知识(改为模板字符串的方式)
 * 开始修改
* 修改成解构的对象
* 修改成Class

核心例子

文中的例子,请在最新的Chrome中测试。关于配置ES6转ES5的环境,不在本文探讨的范畴。

// 定义一个学生构造函数
var People = function(name, age) {
 this.name = name
 this.age = age
}

// 创建小明实例
var xiaoming = new People('xiaoming', 18)

// 定义一个考试函数
// 定义两个回调函数,在适当的时候把参数传进去
var examStart = function(callbackSucc, callbackFail) {
 var result = prompt('1+5=')
 if(result === '6') {
 callbackSucc('Awesome. Your answer is ' + result)
 }
 else {
 callbackFail('You can try again. Your answer is ' + result)
 }
}

// 开始考试
// 传入的两个回调函数分别处理结果
examStart(function(res) {
 console.log(res)
}, function(res) {
 console.log(res)
})

修改成静态变量(const)或块级变量(let)

当你变量的值需要修改的时候,应该使用块级变量(let)。其他时候,使用静态变量(const)。

无论是静态变量(const)还是块级变量(let),都不能重复定义,否则会报错。

静态变量(const)一旦定义,数据类型不可更改。但是引用类型,如Array,Object,都可以用相应的原型方法对数据的内部进行操作。

开始修改

我们这里定义的变量都不需要修改,所以直接全部改为const。在项目中,判断是改为const还是let有一个技巧,可以使用编辑器的变量复选功能(如,sublime中是双击变量名之后ctrl+d)。然后判断代码中是否对这个变量进行过赋值,以及根据自己的判断是否需要对这个变量进行修改,不需要则用const。

// 修改一 var ==> const
const Student1 = function(name, age) {
 this.name = name
 this.age = age
}

// 修改二 var ==> const
const xiaoming1 = new Student1('xiaoming', 18)

// 修改三 var ==> const
const examStart1 = function(callbackSucc, callbackFail) {
 // 修改四 var ==> const
 const result = prompt('1+5=')
 if(result === '6') {
 callbackSucc('Awesome. Your answer is ' + result)
 }
 else {
 callbackFail('You can try again. Your answer is ' + result)
 }
}

examStart1(function(res) {
 console.log(res)
}, function(res) {
 console.log(res)
})

疑问解释(重复定义会发生什么)

const author = 'bw2'
const author = 'bw3' // Uncaught SyntaxError: Identifier 'author' has already been declared
let author = 'bw4' // Uncaught SyntaxError: Identifier 'author' has already been declared

疑问解释(let的块级作用域是怎样的)

// let定义的变量存在块级作用域
if(true) {
 let test1 = 2333
}
console.log(test1) // Uncaught ReferenceError: t is not defined


// var定义的变量不存在,会直接成为全局变量
if(true) {
 var test2 = 2333
}
console.log(test2) // 2333

疑问解释(const定义的变量在基础数据类型和引用类型中的差异)

开始例子之前,先回顾以下基础数据类型。Number、String、Boolean、null、undefined、Symbol。其中Symbol是ES6新加的。除基础数据类型外,皆为引用类型。常见的引用类型是Array,Object。

// const定义的变量值是基础数据类型时,不能修改值,也不能修改类型
const num = 2333
num = 2334 // Uncaught TypeError: Assignment to constant variable.
num = '' // Uncaught TypeError: Assignment to constant variable.

// const定义的变量值是引用类型时,可以修改值
const obj = {}
obj.test = 2333
console.log(obj.test) // 2333

const arr = []
arr.push(1)
console.log(arr) // [1]

修改成Promise的形式

从应用的角度上来讲,Promise的主要作用是可以把回调函数,改为链式调用的模式。

当存在多个嵌套的回调函数时,代码的缩进层级将会非常多,不利于阅读。这时Promise就登场了。

如果只有一个回调函数,不涉及到错误处理,则不建议修改为Promise的形式。

预备知识(回调函数是什么)

回调函数是指,定义一个函数,传入的参数是一个函数。然后在函数中特定的位置,执行这个传入的函数,并将需要用到的数据,作为参数传入。回调函数常见于异步编程。比如发送ajax请求和nodejs中的异步文件操作。百闻不如一见,我们看个最简单的例子吧。

// 定义一个支持传入回调函数的函数
function fun1(callback) {
 // 执行传入的函数,并将值2333作为参数传入
 callback(2333)
}

// 执行定义的函数
fun1(function(res){
 // 输出传入的参数
 console.log(res)
})

预备知识(如何把回调函数改为Promise)

这里只是为了举个例子,不涉及错误处理的时候,不建议修改为Promise。

function fun2() {
 // 在函数中返回一个Promise对象
 // resolve和reject都是函数
 return new Promise(function(resolve, reject){
 // resolve函数中的参数将会出现在.then方法中
 // reject函数中的参数将会出现在.ctch方法中
 resolve(2333)
 })
}

fun2().then(function(res){
 console.log(res) // 2333
})

开始修改

Promise是通过resolve和reject来分别把正确结果,和错误提示放在链式调用的.then和.catch方法里。

const examStart2 = function() {
 // 返回一个Promise对象
 return new Promise(function(resolve, reject) {
 var result = prompt('1+5=')
 if(result === '6') {
  resolve('Awesome. Your answer is ' + result)
 }
 else {
  reject('You can try again. Your answer is ' + result)
 }
 })
}
examStart2()
.then(function(res) {
 console.log(res)
})
.catch(function(err) {
 console.log(err)
})

修改成箭头函数(Arrow Function)

预备知识(箭头函数是什么)

箭头函数是一个用来帮我们简化函数结构的一个小工具

// 普通函数形式
const add1 = function(a, b) {
 return a + b
}
add1(1, 2) // 3

// 箭头函数形式
const add2 = (a, b) => a + b
add2(1, 2) // 3

预备知识(箭头函数函数中的this是个坑)

// 箭头函数没有独立的this作用域
const obj1 = {
 name: 'bw2',
 showName: () => {
 return this.name
 }
}
obj1.showName() // ""

// 解决方案:改为function模式
const obj2 = {
 name: 'bw2',
 showName: function() {
 return this.name
 }
}
obj2.showName() // "bw2"

开始修改

var examStart3 = function() {
 // 修改一
 return new Promise((resolve, reject) => {
 var result = prompt('1+5=')
 if(result === '6') {
  resolve('Awesome. Your answer is ' + result)
 }
 else {
  reject('You can try again. Your answer is ' + result)
 }
 })
}
// 修改二
examStart3().then((res) => console.log(res)).catch((err) => console.log(err))

修改拼接字符串成模板字符串

预备知识(字符串的拼接方式)

const xh2 = 'xiaohong'
console.log('I\'m ' + xh2 + '.') // I'm xiaohong.

预备知识(改为模板字符串的方式)

字符串模板使用的不再是单引号了,是在英文输入状态下的`键(ESC下面那个)。

const xh3 = 'xiaohong'
console.log(`I'm ${xh3}.`) // I'm xiaohong.

开始修改

var examStart4 = function() {
 return new Promise((resolve, reject) => {
 var result = prompt('1+5=')
 if(result === '6') {
  // 修改一
  resolve(`Awesome. Your answer is ${result}`)
 }
 else {
  // 修改二
  reject(`You can try again. Your answer is ${result}`)
 }
 })
}
examStart4().then((res) => console.log(res)).catch((err) => console.log(err))

修改成解构的对象

对象解构常用在nodejs导入包内的某个模块时。对于自己写的对象,如果需要进行解构,则要确保对象内的命名被解构出来不会造成冲突。这里是为了举例子方便,没有使用很独特的命名。

const People2 = function(name, age) {
 this.name = name
 this.age = age
}
const xiaoming2 = new People2('xiaoming2', 18)

// 开始结构
const {name, age} = xiaoming2
// 现在可以独立访问了
console.log(name) // xiaoming2
console.log(age) // 18

修改成Class

类是一个语法糖,但是这并不妨碍我们去食用他。

React中,模板的定义,通常是类,生命周期方法也是写在类中。

class People3 {
 constructor(name, age){
 this.name = name
 this.age = age
 }
 showName() {
 return this.name
 }
}

const xiaoming3 = new People3('xiaoming3', 18)
console.log(xiaoming3) // People {name: "xiaoming3", age: 18}
console.log(xiaoming3.showName()) // xiaoming3

感谢各位的阅读!关于“如何将JavaScript代码改成ES6语法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何将JavaScript代码改成ES6语法

本文链接: https://www.lsjlt.com/news/75004.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何将JavaScript代码改成ES6语法
    这篇文章给大家分享的是有关如何将JavaScript代码改成ES6语法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。目录* 核心例子 * 修改成静态变量(co...
    99+
    2022-10-19
  • 如何将JavaScript 代码装扮成圣诞树
    如何将JavaScript 代码装扮成圣诞树,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。其实也不神奇,我们使用了自己写的一个...
    99+
    2022-10-19
  • 如何将python代码生成API接口
    目录python代码生成API接口1. 安装Flask2. 编写Flask应用3. 运行该Flaks应用4. 使用该接口python写api接口实战操作步骤源码举例请求方式获取请求参...
    99+
    2022-11-11
  • 如何将PHP页面转换成HTML代码
    PHP是一种非常流行的后端编程语言。它可以帮助我们构建各种动态网站和应用程序。但是,在一些情况下,我们可能需要将PHP页面转换成HTML代码。这个过程看起来可能有些棘手,但是我们可以通过一些简单的步骤来实现它。首先,让我们先了解一下为什么会...
    99+
    2023-05-14
  • javascript如何动态生成css代码
    这篇文章主要为大家展示了“javascript如何动态生成css代码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript如何动态生成css代码”这...
    99+
    2022-10-19
  • Java如何将数组转换成List?(代码示例)
    有时候我们需要将数组类型转换成为集合类型,因为后者是一个更为强大的数据结构,java.util.List 有许多普通数组不支持的功能。比如:我们可以通过List的内置方法轻易地检测list是否包含某一个特定的值。下面是一些怎么将数组转换为l...
    99+
    2019-10-30
    java教程 java 数组 List
  • 如何将python代码打包成pip包(可以pip install)
    目录python代码包的用途编写setup.py生成whl和tar.gz文件包python代码包的用途 当你想打包一个目录时,需要现在目录中放一个_init_.py,该文件叫包初始化...
    99+
    2023-02-08
    python打pip包 python代码打包
  • php 如何将ip地址转换成真实地址代码
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php将IP地址转换为真实地址的方法方法使用示例如下define('WEB_ROOT',dirname(__FILE__)); echo converti...
    99+
    2020-01-16
    php ip
  • JavaScript如何将重复的代码移到同个位置
    这篇文章主要介绍了JavaScript如何将重复的代码移到同个位置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。将重复的代码移到同个位置我们应该将重复的代码提取出来,合并放到...
    99+
    2023-06-27
  • mybatis example如何自动生成代码 排序语句
    目录mybatis example自动生成代码 排序语句mybatis自动生成的example用法举个使用例子查询表全部数据方法说明mybatis example自动生成代码 排序语...
    99+
    2022-11-12
  • 如何使用PyInstaller将Python代码转换成可执行文件
    这篇文章主要为大家展示了“如何使用PyInstaller将Python代码转换成可执行文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用PyInstaller将Python代码转换成可执...
    99+
    2023-06-27
  • 如何将VBS或ASP中的代码转成一句话形式
    这篇文章主要介绍如何将VBS或ASP中的代码转成一句话形式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!结果发现,有TABLE不行 类似if xx=1 then yy=2 的也不行...//此脚本支持拖放,也可以在命...
    99+
    2023-06-08
  • 如何将LeetCode上的Java代码打包成可执行文件?
    LeetCode是一款在线算法学习平台,其上有大量的算法题目供开发者练习。通常情况下,我们在LeetCode上编写好的Java代码只能在平台上运行,无法在本地电脑上运行,这给我们的学习和调试带来了很大的不便。本文将介绍如何将LeetCode...
    99+
    2023-07-29
    leetcode npm 文件
  • 如何利用现代化C#语法简化代码
    Intro 最近几个版本的 C# 在语法中有很多的变化,有很多语法能够帮助我们大大简化代码复杂度,使得代码更加简洁,分享几个我觉得比较实用的可以让代码更加简洁的语法 Default...
    99+
    2022-11-12
  • 二维码生成器:如何在Go语言中实现实时生成JavaScript二维码?
    二维码已经成为现代生活中不可或缺的一部分,它们被用于广告、宣传、票据、付款等各种场景。二维码的生成和解码已经得到了广泛的支持,因此,越来越多的人开始使用二维码来代替传统的条形码。 在本文中,我们将介绍如何在Go语言中实现实时生成JavaS...
    99+
    2023-11-06
    实时 javascript 二维码
  • 如何将语音转换成文字?语音转文字操作方法是什么?
      现在这个时代,语音传递信息是一种很常见的方式,当我们接收到语音文件的时候,是怎样将语音转换成文字的呢?如果我们学会了这种操作在工作中可以省下很多时间,下面小编就将语音转文字的方法分享给大家,一起来看...
    99+
    2022-10-18
  • 如何将WMI中的DateTime类型转换成VBS时间的函数代码
    这篇文章将为大家详细讲解有关如何将WMI中的DateTime类型转换成VBS时间的函数代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。有两种方法可以转换,一种是自己写个函数解析: 复制代码 代码如下:F...
    99+
    2023-06-08
  • 如何使用Go语言实现实时生成JavaScript二维码?
    随着移动互联网的发展,二维码已经成为了一种非常方便的信息交互方式。在网页中,我们可以使用JavaScript来生成二维码。那么,如果我们想要在Go语言中实现实时生成JavaScript二维码,应该怎么做呢?本文将为您介绍如何使用Go语言实...
    99+
    2023-11-06
    实时 javascript 二维码
  • 如何使用Go语言异步编程生成二维码并将其存储?
    Go语言是一种高效、可靠、简洁的编程语言,具有很强的并发和异步编程能力。在本文中,我们将学习如何使用Go语言异步编程生成二维码并将其存储。 了解二维码 在开始学习如何使用Go语言生成二维码之前,我们需要先了解二维码的基本概念。二维码是一...
    99+
    2023-10-16
    二维码 异步编程 存储
  • 如何分析SAP ABAP关键字语法图和ABAP代码自动生成工具Code Composer
    这篇文章将为大家详细讲解有关如何分析SAP ABAP关键字语法图和ABAP代码自动生成工具Code Composer,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。小编做SAP CRM Fio...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作