TypeScript 学习二 表达式和循环
表达式:
1,箭头表达式:将function用箭头代替,参数相应进行处理;
用来声明匿名函数,消除了传统匿名函数的this指针问题;
1)
例:简单的方法体为单行的方法,此时不需要大括号和return方法,表达式自动处理了;
如果方法体是多行的内容且有return语句时,就需要大括号了:
2)没有参数的方法的情况,直接写箭头就可以了:
var sum = () =>{
}
3)只有一个参数的情况,只在外边写一个参数就可以了,不用写括号:
var sum = arg1 =>{
console.log( arg1);
}
例:声明一个数组,将数组中的偶数打印出来;
var arr=[1,2,3,4];
console.log(arr.filter( value => value % 2==0)); //filter函数的参数就是一个匿名函数,匿名函数只有一个参数value,不用加括号,方法体就是value%2==0;filter函数将偶数留下,其他的都过滤了;
结果就是如下图:
4)消除this指针的问题:
传统的javascript中用到this时会出现一系列问题,如打印不出来想要的内容:
使用传统的javascript和this写的代码:
结果是这样:并没有打印出来“IBM”
使用typescript中的箭头表达式:
结果是如下的,将IBM打印出来了:
2,循环,forEach(),for in ,for of ;
1)forEach():对值的循环;不允许break;忽略属性;
desc是对该数组进行描述的一个属性,因为typescript不支持这个特性,所以会报错,但是forEach()会在运行时忽略掉这个属性,所以运行结果正常显示:
问题:forEach()方法除了会忽略属性之外,还不允许打破循环,例如break语句;
2)for in:对键key的循环,不会忽略属性;不允许break;常用于打印对象或集合中键值对中的键名;或是数组的 下标,及属性值;
执行结果是:将下标和属性值打印出来了
要想将值打印出来,就要将输出语句改成console.log( arr[n] );这样结果会将值打印出来;
for of循环:和forEach循环类似,都是对值的循环,而不是对键key的循环;特性是允许break; 忽略属性;
代码形式同for in, 只是in 变成of ,结果如下:忽略属性:
允许break的情况:
结果如下:满足break条件时就停止了;同时忽略属性;
for of可以用在任何对象上,如数组,Map, Set, 字符串(就是将字符串中的字符都循环打出来)
TypeScript 学习二 表达式和循环的更多相关文章
- TypeScript 学习一 参数,函数,析构表达式
1,TypeScript是由谷歌开发的,并且新出的Angular2框架就是谷歌公司由TypeScript语言编写的,所以现在TypeScript是有微软和谷歌一起支持的: 2,TypeScript在j ...
- Typescript 学习笔记二:数据类型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Scala学习(二)--- 控制结构和函数
控制结构和函数 摘要: 本篇主要学习在Scala中使用条件表达式.循环和函数,你会看到Scala和其他编程语言之间一个根本性的差异.在Java或C++中,我们把表达式(比如3+4)和语句(比如if语句 ...
- day 82 Vue学习二之vue结合项目简单使用、this指向问题
Vue学习二之vue结合项目简单使用.this指向问题 本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...
- Python入门基础学习 二
Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...
- 利用python 学习数据分析 (学习二)
内容学习自: Python for Data Analysis, 2nd Edition 就是这本 纯英文学的很累,对不对取决于百度翻译了 前情提要: 各种方法贴: https://w ...
- typeScript学习随笔(一)
TypeScript学习随笔(一) 这么久了还不没好好学习哈这么火的ts,边学边练边记吧! 啥子是TypeScript TypeScript 是 JavaScript 的一个超集,支持 es6 标准 ...
- shell 学习笔记9-while/until循环语句
一.while循环语句 1.循环语句 循环愈久就是重复执行一条指令或一组执行,知道条件不在满足时停止,shell循环语句包括,while.until.for.select语句 2.while循环 主要 ...
- day 81 Vue学习二之vue结合项目简单使用、this指向问题
Vue学习二之vue结合项目简单使用.this指向问题 本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...
随机推荐
- VS2012下systemC配置
一.编译System库 1.下载SystemC library source code 到http://www.systemc.org注册会员账号后,即可下载SystemC ...
- SignalR + KnockoutJS + ASP.NET MVC 实现井字游戏
SignalR + KnockoutJS + ASP.NET MVC 实现井字游戏 1.1.1 摘要 今天,我们将使用SignalR + KnockoutJS + ASP.NET MVC实现一个实 ...
- c# in deep 之LINQ简介(1)
前两天公司进了一批书,在借阅jon skeet的c# in deep收获颇大,本书特点是介绍了不同版本的c#所增加的新特性.今天先写一下书中对linq的描述. 很多初学者在使用VS2010或2013写 ...
- 【javascript】判断浏览设备是手机还是电脑
判断页面浏览设备是手机还是电脑,代码如下: function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase( ...
- [转]浅谈PCA的适用范围
线性代数主要讲矩阵,矩阵就是线性变换,也就是把直线变成直线的几何变换,包括过原点的旋转.镜射.伸缩.推移及其组合.特征向量是对一个线性变换很特殊的向量:只有他们在此变换下可保持方向不变,而对应的特征值 ...
- GitHub上搭建个人网站
大致如下步骤: 1.注册Git账号 2.创建SSH keys 3.新建repository --- 4.设置网站 5.clone库到本地 6.提交.上传 7.预览 本教程默认你了解GitHub的基础之 ...
- Asp.net QueryString批量插入和更新
public static string InsertOrUpdateQueryString(string[] keys, string[] values) { return InsertOrUpda ...
- easyui tree 判断是否是叶子节点
<input class="add" id="add" style="display: none" type="submit ...
- ASP.NET WebAPI HTTPS
参照文档 http://southworks.com/blog/2014/06/16/enabling-ssl-client-certificates-in-asp-net-web-api/ 第一 ...
- iOS 开发问题集锦(二)
办公机器原来是别人在用,Xcode也是用别人的账号下载的.昨天想升级Xcode的时候,发现没有密码,为了不打扰别人,也为了方便自己之后升级,于是乎把旧版本直接卸载掉,重新下载了全新的4.6版. 下载完 ...