TS基础 - 运算符

ts的运算符和java基本差不多,基础的那些、与或非、移位运算、三元条件。值得单独提出来说一说的是循环的高阶函数和lable

for循环变种

for循环常见的几种:for、for…in、forEach、for…of
其中说一下 for…of ,允许遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等
for…of 和 for…in 两种循环语句之间的区别: for…in 循环遍历的结果是数组元素的下标,而 for…of 遍历的结果是元素的值

for( let a in list){
    console.log(list[a]); //a是下标
}
for( let a of list){
    console.log(a); //a直接被使用
}

我问了前端的小伙伴,数组用 for - of;对象属性 用 for - in

高阶函数

因为我学过kotlin和dart,看起来不光不怵头,甚至加深了理解
帖子指路:js高阶函数
以下内容是我的原创笔记:

every():bool | 遍历到首个满足条件的元素

条件一假即假,当某个item不满足条件时,它后面的元素将不再遍历,跳出循环。
必须所有都返回true,函数返回值才为true。

some():bool | 遍历到首个满足条件的元素

条件一真即真,只要有一个元素符合条件则为真,它后面的元素不在遍历,跳出循环。
只要其中一个为true 就会返回true。

find():对象 | 遍历到首个满足条件的元素

找数组中的元素,只要有一个元素满足就返回这个元素,其后面的元素将不再遍历,跳出循环。

filter():数组 | 遍历所有

把所有满足条件的元素组成新数组返回,过滤不影响原数组

map(): 数组 | 遍历所有

遍历所有元素形成新的数组,数组中的值根据return后的语句调整。如return后为条件语句则数组为bool数组;如为 return i + 1 这样的运算语句,则值为运算结果

以上函数的实际写法:有两种
var eve= list.every(function(item){   return 条件语句 })  这个方式更常用
var v = list.every(function(item, idx, array){     return 条件语句 }); // item: 当前元素; idx:当前index;array: Array,这一点every和some相同
reduce():结果 | 遍历所有

reduce() 是数组的归并方法,会对数组每一项进行遍历,reduce() 可同时将前面数组项遍历产生的结果与当前遍历项进行运算。
reduce()可以 求和,求最大值,去重,他的写法和上面几种有点区别:

	let x3 = list.reduce((sum,item) => { return 运算公式;}, sum初始值)
	let x3 = list.reduce((sum,item, idx,array) => {return 运算公式;},sum初始值)

相比于其他函数在使用上增加了sum

标题lable:标签

label是一种标识,用于for、while循环。在多层嵌套循环时能跳出到指定层次,类似于goto
java里头使用label的唯一理由是:在嵌套循环中想要求命令break或者continue越过一个以上的嵌套层。

说实话goto我就不爱用,到了js里lable就更不爱用了,毕竟这代码你写的不一定轮到你来维护;就算你自己维护时间久了也未必记得住。
但如果你非要用看看这个:lable

你可能感兴趣的:(前端,typescript)