IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> ES9-新特性 -> 正文阅读

[JavaScript知识库]ES9-新特性

1. 对象扩展

像之前数组的剩余参数rest, ES9新增了对象rest, 和之前数组的剩余参数用法相似

可以用来拷贝对象(深拷贝),给变量赋值、合并对象等

eg:

const obj = {
    uname: '波吉',
    sex: 'male'
}

const obj2 = {
    uname: '波吉王子',
    age: 5
}

const {uname, sex} = {...obj}
console.log(uname, sex)

const obj3 = {...obj}   // 深拷贝
console.log(obj3)
obj3.uname = '卡克'
console.log(obj3)
console.log(obj)

const newObj = {...obj, ...obj2}
console.log(newObj) 

const {age, ...res} = newObj
console.log(res)

打印结果:

image.png

2. 字符串扩展

trimStart()/trimLeft()- - -删除左边空格
trimEnd()/trimRight()- - -删除右边空格
trim()- - -删除左右两边空格

const str = '   helloworld   '
console.log(str)

// 删除左边空格
console.log(str.trimStart())
console.log(str.trimLeft())

// 删除右边空格
console.log(str.trimEnd())
console.log(str.trimRight())

// 删除左右两边空格
console.log(str.trim())

打印结果:
image.png

3. 数组扩展

flat()- - -将多维数组拍平,可以多个flat()连写,也可以在flat()里面写拍平的层级:flat(n)
还可以将参数n 写成 infinity
一般来说,要拍平的层级是多少,n就写多少

flatMap()- - -将数组的每个元素进行一段处理,并拍平返回结果,等效于 map()+flat()

eg:flat()

const arr = [1, 2, 3, [4, 5, [6, 7, [8, 9, 10]]]]
console.log(arr)
console.log(arr.flat())
console.log(arr.flat().flat())
console.log(arr.flat().flat().flat())
console.log(arr.flat(3))

打印结果:

image.png

eg:flatMap()

const arr = [2, 6, 8, 10]
console.log(arr.map(item => item + 1))
console.log(arr.map(item => [item + 1]))

//下面两个等效
console.log(arr.map(item => [item + 1]).flat())
console.log(arr.flatMap(item => [item + 1]))

打印结果:

image.png

4. toString()

ES9中定义了toString()打印按原样格式输出,例如打印函数,空格换行、注释也会原样输出:

eg:

function foo() {
    // 我是注释
    console.log('hello 波吉!')
}

console.log(foo)

打印结果:

image.png

5. Catch(e)捕获异常,不用异常参数的话也可以省略括号和参数

try{
  // 内容
} catch(e) {
  console.log(e)
}

如果不需要知道异常的信息,可以省略catch后的括号和参数,如下:

try{
  // 内容
} catch {
  \\\
}

6. JSON 超集、JSON.stringify()

eval()函数里面可以写javascript语句,以前的es不能识别 在其中添加的 \u2029(段落分隔符) \u2028(行分隔符),ES9中可以识别了,这就是JSON 超集

有的字符Unicode的码特殊,像这种’\uD83D\uDE0E’,这是一个字符,以前如果不输入完整的Unicode码,会报错提示这不是一个正确的Unicode码,现在ES9添加了方法:JSON.stringify(),没输完整的就会原样输出:

eg:

// 超集 eval()函数里可以识别\u2029(段落分隔符) \u2028(行分隔符)
eval('var str="波吉波吉!我是卡克!";\u2029function foo(){console.log(str)}')

foo()

console.log(JSON.stringify('\uD83D\uDE0E')) // emoji表情
console.log(JSON.stringify('\uD83D'))

打印结果:

image.png

7. Symbol描述属性description

ES9中添加了 Symbol 的描述属性- - -description,改属性是只读的,不能改写值

const s = Symbol('国王排名')
console.log(s)

console.log(s.description)

s.description = '波吉与卡克'
console.log(s.description)

打印结果:

image.png

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-17 12:40:05  更:2021-11-17 12:40:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/11 18:37:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码