博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
带你入门 JavaScript ES6 (二)
阅读量:6871 次
发布时间:2019-06-26

本文共 2017 字,大约阅读时间需要 6 分钟。

本文同步 ,转载请注明出处。

上一篇,我们学习了关于块作用域变量或常量声明 let 和 const 语法、新的字符串拼接语法模版字面量、数组元素或对象元素的解构赋值和对象字面量简写的相关知识。

这一章我们将学习

  • for of 迭代语法
  • 神奇的扩展语法(...:展开运算符、剩余参数)

一、for of 迭代语法

先让我们看看 ES6 之前的对象变量迭代(遍历)方式:

1.1 for 语句

let numerics = [0, 1, 2, 3]for (let i = 0; i < numerics.length; i++) {    console.log(numerics[i])}

for 语法: 在变量对象时,需要定义计数器(i)进行循环跟踪和访问数据中的值;循环退出条件(i < numeric.length)

为了解决这个问题,就有了 for in 语句

1.2 for in 语句

它解决了 for 语句 的计数器和推出条件

let numerics = [0, 1, 2, 3]for (let index in numerics) {    console.log(numerics[index])}

但是 for in 语句依然需要定义 index,作为访问数据的索引

1.3 for of 语句

现在在 ES6 中,只要是都可以使用 for of进行迭代访问数据元素。

for of 语法for in 语法 类似,只是将 in 替换成了 of

let numerics = [0, 1, 2, 3]for (let numeric in numerics) {    console.log(numeric)}

二、 扩展语法

扩展语法运算符是 ...,在上一篇的「3.1」节中我们使用了将数组中剩余元素解构赋值到一个变量。这便是扩展运算符的用途之一。

现在我们学习更多扩展运算符的语法知识

2.1 作为展开运算符使用

先来了解如何使用展开运算符

let languages = ['php', 'javascript', 'python', 'c++']console.log(...languages)// php javascript python c++console.log(languages)// ["php", "javascript", "python", "c++"]

上例中,使用 ...languages 对数组内的所有元素作为单独的变量输出

2.1.1 展开运算符实现数组的连接

let langs = ['php', 'javascipt']let langs2 = ['c++', 'python']console.log([...langs, ...langs2])// ["php", "javascipt", "c++", "python"]

2.1.2 concat 方法实现数组的拼接

let langs = ['php', 'javascipt']let langs2 = ['c++', 'python']console.log(langs.concat(langs2))// ["php", "javascipt", "c++", "python"]

相较于使用展开运算符 langs.concat 在实现上稍微复杂一些

2.2 作为剩余参数运算符使用

在上一篇[学习下一代 JavaScript 语法: ES6 (一)]()的 3.1 节中我们已经使用了该用法,再来看下

let seasons = ['Spring', 'Summer', 'Autumn', 'Winter']let [spring, summer, ...autumnAndWinter] = seasonsconsole.log(spring)//Springconsole.log(summer)// Summerconsole.log(autumnAndWinter)// ['Autumn', 'Winter']

2.3 作为可变参数运算符使用

可变参数函数 是接受不定数量参数的函数

// 一般定义函数方法function sum(a, b, c) {    return a + b + c}// 使用可变参数运算符定义采纳数方法function sumPro(...nums) {    let sum = 0    for (let num of nums) {        sum += num    }    return sum}console.log(sum(1, 2, 3))console.log(sumPro(1, 2))console.log(sumPro(1, 2, 3))console.log(sumPro(1, 2, 3, 4))

参考资料:

你可能感兴趣的文章
DD-WRT v24-sp2的WDS中继设置
查看>>
SQL语句中ALTER的用法
查看>>
最近读的javascript,一些文章
查看>>
SVN服务器搭建和使用(三)
查看>>
JSON入门指南--客户端处理JSON
查看>>
Objective-C内存布局
查看>>
qsort的另类玩法,无聊写着耍耍
查看>>
每日一乐,健康多滋味~~
查看>>
[Oracle] - Connect to a PDB of Oracle12c
查看>>
VS2015 android 设计器不能可视化问题解决。
查看>>
移动数据统计平台分析
查看>>
httppp 1.4.0 发布,HTTP响应时间监控
查看>>
ASP.NET MVC加载ASCX之后,并为之赋值
查看>>
使用SDWebImage淡入淡出的方式加载图片
查看>>
nmon与nmonanalyser系统性能分析
查看>>
52. N-Queens II
查看>>
字符串匹配算法
查看>>
LAMP学习路线图
查看>>
MySQL入门(四)
查看>>
详解 ML2 Core Plugin(II) - 每天5分钟玩转 OpenStack(72)
查看>>