TypeScript入门知识三(函数新特性)
一,Rest and Spread操作符:
用来声明任意数量的方法参数也就是“...”操作符

输出结果:
18
jajj
89
function test (a, b, c) {
console.log(a);
console.log(b);
console.log(c);
}
var agrs = [1, 2];
test(...agrs);
输出结果:
1
2
undefind
var agrs = [4,5,6,7,8,9];
test(...agrs);
输出结果:
4
5
6
根据定义的参数取传入的参数
二,generator函数;
控制函数的执行过程,手工暂停和恢复代码执行
在TypeScript的编辑器中不支持这个语法,需要在babeljs的编辑器中联系(http://babeljs.cn)
function* doSomething () {
console.log("start");
yield;
console.log("end");
}
//调用generator函数,必须赋值给一个变量
var func1 = doSomething();
//通过next()来调用
func1.next();
func1.next();
三.destructuring析构表达式
通过表达式将对象或者数组拆解成任意数量的变量。
function getStock() {
return{
code: "IBM",
price:100
}
}
var { code, price } = getStock(); //但是变量的命名和字段必须一样
var {code: codeX, price} = getStock;//当你定义的变量与对象的变量不一样时
console.log(code);
console.log(price);
输出结果:
“IBM”
100
当对象中的字段是一个对象
function getStock() {
return{
code: "IBM",
price:{
price1: 100,
price2: 120
}
}
}
var { code,price:{price2}} = getStock();
数组用析构表达式
var array1 = [1, 2, 3];
var [ , num1, num2] = array1;
console.log(num1);
console.log(num2);
输出结果:
2
3
var array1 = [1, 2, 3];
function doSomething([num1,num2,...others]) {
console.log(num1);
console.log(num2);
console.log(others);
}
doSomething(array1);
输出结果:
1
2
[3]
有点主要是根据对象或者数组初始化一些变量,可以写更少的代码;
TypeScript入门知识三(函数新特性)的更多相关文章
- TypeScript入门(三)面向对象特性
一.类(Class) 类是ts的核心,使用ts开发时,大部分代码都是写在类里面. 1.类的声明 多个对象有相同的属性和方法,但是状态不同. 声明类的属性和方法时可以加 访问控制符,作用是:类的属性和方 ...
- TypeScript入门知识五(面向对象特性二)
1.泛型(generic) 参数化的类型,一般用来限制集合的内容 class Person { constructor(private name: string) { } work() { }}var ...
- TypeScript入门知识一(字符串特性)
一,TypeScript多行字符串 传统JavaScript字符串换行需要+进行拼接,而TypeScript不需要+拼接.看下面实例: javaScript: var content = " ...
- TypeScript入门知识五(面向对象特性一)
1.类(class) 类是TypeScript的核心,使用TypeScript开发时,大部分代码都是写在类里面的. 类的定义 ,属性控制符 public(允许外部访问,也是默认的方式),private ...
- 简单理解ECMAScript2015中的箭头函数新特性
箭头函数(Arrow functions),是ECMAScript2015中新加的特性,它的产生,主要有以下两个原因:一是使得函数表达式(匿名函数)有更简洁的语法,二是它拥有词法作用域的this值,也 ...
- Spring框架入门之Spring4.0新特性——泛型注入
Spring框架入门之Spring4.0新特性——泛型注入 一.为了更加快捷的开发,为了更少的配置,特别是针对 Web 环境的开发,从 Spring 4.0 之后,Spring 引入了 泛型依赖注入. ...
- 前端入门21-JavaScript的ES6新特性
声明 本篇内容全部摘自阮一峰的:ECMAScript 6 入门 阮一峰的这本书,我个人觉得写得挺好的,不管是描述方面,还是例子,都讲得挺通俗易懂,每个新特性基本都还会跟 ES5 旧标准做比较,说明为什 ...
- java基础学习总结三(jdk7新特性、变量(局部变量和成员变量)、常量以及运算符)
一:jdk7新特性 可以表示二进制数值,以0b开头,中间可以使用下划线_分隔符.如下: @Test /** * 测试jdk新特性 */ public void testJdk7(){ int a=0b ...
- 前端笔记之ES678&Webpack&Babel(中)对象|字符串|数组的扩展&函数新特性&类
一.对象的扩展 1.1对象属性名表达式 ES6可以在JSON中使用[]包裹一个key的名字.此时这个key将用表达式作为属性名(被当做变量求值),这个key值必须是字符串. var a = 'name ...
随机推荐
- hadoopmaster主机上传文件出错: put: File /a.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There are 3 datanode(s) running and 3 node(s) are excluded in this operation.
刚开始装好hadoop的时候,namenode机上传文件没有错误,今天打开时突然不能上传文件,报错 put: File /a.txt._COPYING_ could only be replicate ...
- linux中/bin和/sbin和/usr/bin和/usr/sbin
首先先解释一下bin和sbin的意思: 1.bin:为任何用户都可以使用的指令 2.sbin:(super bin)也就是只有超级管理员才能使用的指令 /usr UNIX Software Re ...
- nyoj61 传纸条(一) dp
思路:两人一个从左上角出发只能向右和向下,另一人从右下角出发只能向左和向上,可以看做两人都是从右下角出发,且只能向左和向上传纸条,并且两条路径不会相交,因为一个人只会传一次,那么随便画一个图就能知道两 ...
- uva208
一道简单的路径打印,首先需要一次dfs判断能否从1到达目标点,否则可能会超时.还有一点就是那个格式需要注意下,每条路径前没有空格(看起来好像有3个空格)-. AC代码: #include<cst ...
- UVA1602
实现的细节很多,学到了如何翻转.旋转.平移,get很多技巧,值得一做. AC代码: #include<cstdio> #include<cstring> #include< ...
- HDU - 2154 线性dp
思路:0表示A,1表示B,2表示C,d(i, j)表示在第j次时正好到达i. AC代码 #include <cstdio> #include <cmath> #include ...
- CodeForces - 740C
这题是思维考察.由于区间个数可能会很多,暴力完全没法下手.首先要明确区间长度最小的就决定了最后的答案,因为最小区间必须要要从0开始到区间长度减1才能满足让mex最大.接下来就是考虑如何填充数组才能让所 ...
- 解决ios不支持按钮:active伪类的方法
mozilla开发社区上有 :active 不起作用的答案: [1] By default, Safari Mobile does not use the :active state unless t ...
- linux Cacti监控服务器搭建
搭建Cacti监控服务器 部署安装环境(lamp) [root@zhuji1 ~]# yum -y install httpd [root@zhuji1 ~]# yum -y install php ...
- 相位噪声 dBc/Hz
相位噪声和抖动是对同一种现象的两种不同的定量方式.在理想情况下,一个频率固定的完美的脉冲信号(以1 MHz为例)的持续时间应该恰好是1微秒,每500ns有一个跳变沿.但不幸的是,这种信号并不存在.如图 ...