前端-ES6

这篇具有很好参考价值的文章主要介绍了前端-ES6。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

let 和 const

为了解决var的作用域的问题,而且var 有变量提升,会出现全局污染的问题

  1. let 块状作用域,并且不能重复声明
  2. const 一般用于声明常量,一旦被声明无法修改,但是const 可以声明一个对象,对象内部的属性是可以修改的
    建议: 在默认的情况下用const, 而只有你知道变量值需要被修改的情况下才使用let

模板字符串

解决字符串拼接问题,类似Java中的占位符号文章来源地址https://www.toymoban.com/news/detail-657799.html

函数之默认值、剩余参数

// 默认值
function add(a, b = 20) {
  return a + b
}

// 默认的表达式也可以可以是一个函数
function add(a, b = getVal(5)) {
  return a + b
}

// 剩余参数:由三个点... 和一个紧跟着的具名参数指定 ...keys
function foundData(obj, ...keys){
	
}

函数扩展运算符、箭头函数

// 扩展运算符: 将一个数组分割,并将各个项作为分离的参数传给函数
// 获取数组中的最大值
const arr = [10,20,90,30]
// ES5 
Math.max.apply(null, arr)

// ES6 
Math.max(...arr)


// 箭头函数
const add = (a, b) =>{
	return a + b
}

const add val => {
	return a + 5
}

const add val => (a + 5)

解构赋值

// 解构赋值时对赋值运算符的一种扩展
let node = {
	name: '张三',
	age: 45
}
const name = node.name
const age = node.age

// 等价写法
const {name, age } = node

// 对数组解构
let arr = [1,2,3]
let[a,b] = arr


// 可嵌套解构
let [a,[b],c] = [1,[2],3]

扩展对象的功能

// 对象的方法
// is() ==== 比较俩个值是否严格相等
Object.is(NaN, NaN)

// assign() 对象合并
let newObj = Object.assign({},{a:1},{b:2})
// 重复的属性,只会保留一个,会被覆盖掉
Object.assign({},{a:1},{b:2},{b:2})
{a: 1, b: 2}
// 属性名称一样,但是值不一样,会回去最后的值
Object.assign({},{a:1},{b:2},{b:3})
{a: 1, b: 3}

Symbol类型

// 原始的数据类型Symbol,它表示独一无二的值
// 最大的用途:用来定义对象的私有变量

set集合数据类型

// 可以用于去除重复元素
let set2 = new Set([1,2,3,3,3,3,4])

// 也可以将set集合中的元素在转换为数组
let arr = [...]

// set中对象的引用无法被释放,虽然可以使用WeakSet, 但是WeakSet比Set少了很多方法

Map数据类型

数组的扩展方法

数组的方法 from() of()
// from() 将伪数组转换成真正的数组
function add(){
	let arr = Array.from(arguments)
	// 这时候的数组就具备数组的所有方法
}

let lis = document.querySelectorAll('li')
console.log(Array.from(list))
// 或者可以通过扩展运算符转换为真正的数组
console.log([...lis])

// from() 还可以接受第二个参数,用来对每个元素的处理
let liContents = Array.from(lis, ele => ele.textContent)

// of() 将任意的数据类型,转换成数组
Array.of(3,11,20,[1,2,3])

// find() findIndex()
// find() 找出第一个符合条件的数组成员
let num = [1,2,-10,-20,9].find(n => n<0)

// findIndex() 找出第一个符合条件的数组成员的索引
let num = [1,2,-10,-20,9].findIndex(n => n<0)

// entries() keys() values()
for(let index of ['a', 'b'].keys()){
	console.log(index)
}

for(let ele of ['a', 'b'].values()){
	console.log(ele)
}

// incluedes() 返回一个boolean 值,表示某个数组中是否包含某个元素

迭代器Interrator 的用法

// Iterator 一种遍历机制
const items = ['one', 'two', 'three']
const ite = items[Symbol.iterator]();
// {value: "one", done: false} done 如果为false表示还有元素,如果为true 表示遍历完成结束了
ite.next() 

Generator的应用

// 生成器一般都和迭代器一起使用
// generator函数, 可以通过yield关键字,将函数挂起,为了改变执行流提供了可能性
// 同时为了做异步编程提供了方案
// 它跟普通函数的区别
// 1.function 后面函数名之前有*号
// 2.只能在函数内部使用yield表达式,让函数挂起

function* func(){
	console.log('one')
	yield 2;
	console.log('two')
	yield 3;
	console.log('end')
}
// 返回一个遍历器对象 可以调用next()
let fn = func();
console.log(fn.next())
console.log(fn.next())
console.log(fn.next())

Promise的基本使用

// 相当于一个容器,保存这未来才会结束的事件(异步操作)的一个结果
// 各种异步的操作都可以用同样的方法进行处理

// 对象的状态不受外界的影响 处理异步操作三个状态 Pending Resolved Rejected
// 一旦状态改变,就不会在变,任何时候都可以得到这个结果

// then() 第一个参数是resolve 回调函数,第二个参数是可选的 是reject 状态的回调函数
// then() 返回的是一个新的Promise示例,所以可采用链式编程

// catch() 用于捕获异常信息


// 1.resolve() 可以直接将一个对象转换为Promise对象
// 2.all() 同时执行多个promise 对象
// 3.race() 某个异步请求设置超时时间,并且在超时后执行响应的操作 

async 的用法

// 异步操作更加方便
// 基本操作 async 它会返回一个Promise对象
async function f(){
	let s = await 'hello'
	let data = s.split('')
	return data;
}
// 如果async 函数中有多个await 那么 then 函数会等待所有的await指令,运行完成,知道遇到return
f().then(v => {console.log(v)})

到了这里,关于前端-ES6的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 第一章前端开发ES6基础

    认识ES6 概述 ES6表示ECMAScript规范的第六版,正式名称为 ECMAScript 2015 ,ECMAScript是由ECMA国际标准组织制定的一项 脚本语言 的标准规范化,引入了许多新特性和语法。 其中包括 箭头函数、let和const声明、类、模板字符串、解构赋值、参数默认值、展开操作符、Promise 等等。这些

    2024年02月08日
    浏览(12)
  • 前端小白的学习之路(ES6 一)

    提示:声明:let与const,长度单位:em与rem,vw与wh,解构赋值,箭头函数(简介) 目录 一、ES6介绍 二、letconst 1.let 1) 用 let 声明的变量不能提前引用 2) 不允许重复声明变量 3) 可以产生块级作用域 { }   总结 2.const 三、 长度单位 1.em与rem 1).em 2).rem 2.vw与vh 四、 解构赋

    2024年04月15日
    浏览(12)
  • 第二章前端开发ES6基础

    目录 扩展运算符 概述 语法 应用 模板字符串 概述 应用 内置对象扩展 概述 数组扩展方法 字符串扩展方法 set数据结构 概述 基本使用 操作方法 遍历方法 认识symbol 概述 作用 基本使用 项目 扩展运算符 概述 扩展运算符(spread operator)是 ES6 中新增的一种运算符,用 三个点(

    2024年02月07日
    浏览(16)
  • 前端面试:【前端工程化】CommonJS 与 ES6 模块

    嗨,亲爱的前端开发者!在现代Web开发中,模块化是构建可维护和可扩展应用程序的关键。本文将深入探讨两种主要的JavaScript模块系统:CommonJS 和 ES6 模块,以帮助你了解它们的工作原理、用法以及如何选择合适的模块系统。 1. CommonJS: 用途: CommonJS 是一种模块系统,最初

    2024年02月11日
    浏览(53)
  • 前端架构师之01_ES6_基础

    简单来说,ECMAScript是JavaScript语言的国际标准,JavaScript是实现ECMAScript标准的脚本语言。 2011年,ECMA国际标准化组织在发布ECMAScript 5.1版本之后,就开始着手制定第6版规范。 存在的问题:这个版本引入的语法功能太多,而且制定过程当中,还有很多组织和个人不断提交新功能

    2024年02月07日
    浏览(30)
  • 前端技术栈 - ES6 - Promise -模块化编程

    前端技术栈 - ES6 - Promise -模块化编程

    ECMAScript 6.0(简称ES6)是JavaScript语言的下一代标准, 2015年6月发布. ES6设计目标: 达到JavaScript语言可以用来编写复杂的大型程序, 成为企业级开发语言. ECMAScript和JavaScript的关系就: ECMAScript是JavaScript的规范/规则, JavaScript是ECMAScript的一种实现. let.html +与,的区别 let_detail.html 细节1. l

    2024年02月11日
    浏览(905)
  • 前端框架学习-ES6新特性(尚硅谷web笔记)

    ECMASript 是由 Ecma 国际通过 ECMA-262 标准化的脚本程序设计语言。javaScript也是该规范的一种实现。 笔记出处:b站 尚硅谷Web前端ES6教程,涵盖ES6-ES11 阮一峰大佬的:ECMAScript 6 入门 ES6 let 使用let声明变量的特点: 不允许重复声 块儿级别作用域 不存在变量提升 不影

    2024年02月12日
    浏览(29)
  • 前端 ES6 环境下 require 动态引入图片以及问题

    前端 ES6 环境下 require 动态引入图片以及问题

    ES6 环境中,通过 require 的方式引入图片很方便,一直以来也没有出过什么问题,后来项目中,需要动态引入图片。 require 动态引入也容易实现,百度也能搜到很多博客介绍。 偶然发现项目中 require 引入图片好像对打包体积影响挺大 ,js 会变大很多,经过测试,终于确定原因

    2024年02月07日
    浏览(16)
  • 【web前端学习】7个ES6解构技巧让代码更简洁

    【web前端学习】7个ES6解构技巧让代码更简洁

    各位前端er,代码打久了,是否厌倦了编写臃肿且难以阅读的代码?想要提升编码技能并使代码更具可读性和简洁性? 今天这篇文章,与小千一起深入学习 ES6 解构的世界,向您展示如何使用它来编写更干净、更高效的代码 本文将从 解构对象和数组到使用默认值和展开运算符

    2024年02月05日
    浏览(10)
  • 后端程序员的前端必备【Vue】 - 07 ES6新语法

    使用let定义变量能更加精准的确定变量的作用域 使用const定义常量,常量一旦定义不可以改变 使用模板字符串可以避免大量的字符串拼接 类似于springmvc中接受参数拥有默认值 使用箭头函数可以简化复杂的代码结构(类似于java中lambda表达式) 箭头函数应用 定义:从一个大的数

    2024年02月04日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包