1 箭头函数

1.1 以往js

  • function 名字(){ 其他语句 }

1.2 现在ES6

  • 修正了一些this,以前this可以变 ()=>{ 其他语句 }
  • 如果只有一个参数,()可以省 。如果只有一个return,{}可以省

1.3 对比代码如下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>箭头函数</title>
<script>
// 原先js中的函数使用
// window.onload = function() {
// alert('abc');
// };
//现在ES6的转变箭头函数使用方法
// window.onload = () => {
// alert('abc');
// };
// js带有函数命名的使用方法
// let show = function() {
// alert('abc')
// };
// show();
// ES6带有箭头函数命名的使用方法
// let show = () => {
// alert('abc')
// };
// show();
// js带有函数参数的使用方法
// let show = function(a, b) {
// alert(a + b)
// };
// show(12, 6);
// ES6带有箭头函数参数的使用方法
// let show = (a, b) => {
// alert(a + b)
// };
// show(12, 6);
// js数组在函数的使用
// let arr = [12, 5, 8, 99, 33, 14, 26];
// arr.sort();
// alert(arr);
// 进行一个排序操作
// arr.sort(function(a, b) {
// return a - b;
// });
// alert(arr);
// ES6中数组对函数的使用
// let arr = [12, 5, 8, 99, 33, 14, 26];
// arr.sort();
// alert(arr);
//进行一个排序操作
// arr.sort((a, b) => {
// return a - b;
// });
// alert(arr);
/圆括号可以省略,中括号可以省略
// let show = a => a * 2;
// alert(show(12));
</script>
</head>
<body>
</body>
</html>

2 参数扩展/数组展开

2.1 收集剩余的参数

  • function show(a,b,...args){} *Rest Parameter必须是最后一个

2.2 代码如下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>函数扩展</title>
<script>
// args是剩余的参数存储,必须是最后一个
function show(a, b, ...args) {
alert(a);
alert(b);
alert(args);
};
show(12, 3, 42, 21, 21);
</script>
</head>
<body>
</body>
</html>

3 展开一个数组

  • 展开后的效果,跟直接把数组的内容写在这儿一样 args=[1,2,3]则...args等同于1,2,3

3.1 代码如下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>函数展开</title>
<script>
let arr = [12, 3, 42];
// 用法1
// 结果为依次输出12,3,42
show(...arr);
function show(a, b, c) {
alert(a);
alert(b);
alert(c);
};
let arr1 = [1, 23, 4];
// 用法2
let arr2 = [arr, arr1];
// 结果为依次输出12,3,42,1, 23, 4
alert(arr2);
// 用法3
function show2(...args) {
fn(...args);
};
function fn(a, b, c) {
alert(a + b + c);
}
show2(1, 2, 3);
</script>
</head>
<body>
</body>
</html>

4 默认参数

4.1 代码如下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>默认参数</title>
<script>
function show(a, b = 2, c = 4) {
alert(a + b + c);
}
show(1);
</script>
</head>
<body>
</body>
</html>

ES6-函数与数组命名的更多相关文章

  1. ES6函数扩展

    前面的话 函数是所有编程语言的重要组成部分,在ES6出现前,JS的函数语法一直没有太大的变化,从而遗留了很多问题和的做法,导致实现一些基本的功能经常要编写很多代码.ES6大力度地更新了函数特性,在ES ...

  2. ES6新特性-------数组、Math和扩展操作符(续)

    三.Array Array对象增加了一些新的静态方法,Array原型上也增加了一些新方法. 1.Array.from 从类数组和可遍历对象中创建Array的实例 类数组对象包括:函数中的argumen ...

  3. C语言中的函数、数组与指针

    1.函数:当程序很小的时候,我们可以使用一个main函数就能搞定,但当程序变大的时候,就超出了人的大脑承受范围,逻辑不清了,这时候就需要把一个大程序分成许多小的模块来组织,于是就出现了函数概念:  函 ...

  4. ES6 函数的扩展2

    8.2 rest参数 ES6引入rest参数(形式为"-变量名"),用于获取函数的多余参数,这样就不需要使用arguments对象了. arguments对象并没有数组的方法,re ...

  5. Scala学习教程笔记一之基础语法,条件控制,循环控制,函数,数组,集合

    前言:Scala的安装教程:http://www.cnblogs.com/biehongli/p/8065679.html 1:Scala之基础语法学习笔记: :声明val变量:可以使用val来声明变 ...

  6. java基础基础总结----- 关键字、标识符、注释、常量和变量、运算符、语句、函数、数组(三)

    Java语言基础组成:关键字.标识符.注释.常量和变量.运算符.语句.函数.数组 一.标识符 标识符是在程序中自定义的一些名称,由大小写字母[a-zA-Z],数字[0-9],下划线[ _ ],特殊字符 ...

  7. python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)

    昨日内容回顾 1.三种引入方式 1.行内js <div onclick = 'add(3,4)'></div> //声明一个函数 function add(a,b){ } 2. ...

  8. es6函数的扩展

    扩展运算符 含义 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. 扩展运算符的应用 (1)合并数组 // ES5 [1, 2].co ...

  9. C语言中变量名及函数名的命名规则与驼峰命名法

    一.C语言变量名的命名规则:(可以字母,数字,下划线混合使用) 1. 只能以字母或下划线开始:2. 不能以数字开始:3. 一般小写:4. 关键字不允许用(eg:int float=2//error  ...

  10. 包括ES6在内的数组操作(待更)

    下面是我对ES6和古老的JS(ES3)一些数组操作的总结,附带了一些我曾经用上的. map处有待更内容. 贴一下有借鉴的网站:https://segmentfault.com/a/1190000002 ...

随机推荐

  1. SpringCloudStream学习(二)RabbitMQ中的交换机跟工作模式

    知识储备: 交换机: ​ RabbitMQ中有4中交换机,分别是 (FANOUT)扇形交换机: 扇形交换机是最基本的交换机类型,它所能做的事情非常简单---广播消息.扇形交换机会把能接收到的消息全部发 ...

  2. C# 多线程猜想

    公司分配给我一个活,让我给Kong网关做一个获取设置的站点.Kong网关号称几万的QPS的神器,我有点慌,如果因为我的站点拖累了Kong我就是千古罪人. 配合Kong的站点必须要经过性能测试,在性能测 ...

  3. pyhanlp安装成功,import导入失败,出现:importerror: cannot import name 'jvmnotfoundexception'

    1.问题描述: pyhanlp成功安装,并且可以正常使用,但是这段时间再去用的时候,发现出问题了,一运行就出现,下面的问题: importerror: cannot import name 'jvmn ...

  4. python 一个模块找不到的错误:ModuleNotFoundError

    阿刁是一个自动化测试用例,从一出生他就被赋予终生使命,去测试一个叫登录的过程是否合理.他一直就被关在一个小黑屋里面,从来也没有出去过,小黑屋里还被关着其他的同胞,他们身上都捆着两个小袋子. 小黑屋里很 ...

  5. SpringMVC中参数的传递(一)

    前言 1.首先,我们在web.xml里面配置前端控制器DispatcherServlet以及字符编码过滤器(防止中文乱码),配置如下: <?xml version="1.0" ...

  6. 将mat文件中的数据按要求保存到txt文档中(批处理)

    之前有个老朋友,让帮忙将一个mat中的数据重新保存到txt中,由于数据比较多需要用到批处理,之前弄过很多次,但每次一到要用的时候总是忘记怎么写了,现在记录一下,免得后面老是需要上网搜.这里先说一个比较 ...

  7. vue.use()方法从源码到使用

    在做 vue 开发的时候大家一定经常接触 Vue.use() 方法,官网给出的解释是: 通过全局方法 Vue.use() 使用插件:我觉得把使用理解成注册更合适一些,首先看下面常见的注册场景. 1 2 ...

  8. 你了解C#的协变和逆变吗

    从C# 4.0开始,泛型接口和泛型委托都支持协变和逆变,由于历史原因,数组也支持协变. 里氏替换原则:任何基类可以出现的地方,子类一定可以出现. 协变(out) 协变:即自然的变化,遵循里氏替换原则, ...

  9. 基于Vue搭建自己的组件库(1)

    本项目演示地址:https://husilang.github.io/zm-ui 项目参考文章:从零开始搭建Vue组件库 VV-UI 项目的初衷是学习怎么封装一个基于Vue的UI组件库,顺便记录每个步 ...

  10. 「雕爷学编程」Arduino动手做(26)——4X4矩阵键盘模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...