2020/02/07 02-匿名函数和高阶函数

2020/02/07 02-匿名函数和高阶函数
console.log跟python的print有点不一样,不能每次控制都换行,先试试打方阵,插值需要用反引号
2020/02/07 02-匿名函数和高阶函数
看一下对角线,修改判断2020/02/07 02-匿名函数和高阶函数
每一行都需要清空
2020/02/07 02-匿名函数和高阶函数2020/02/07 02-匿名函数和高阶函数2020/02/07 02-匿名函数和高阶函数
对象可以用索引的方式来取,这里是插值
2020/02/07 02-匿名函数和高阶函数
插值的要求是${表达式}2020/02/07 02-匿名函数和高阶函数
for of是新语法,只能迭代数组,迭代数组的元素
2020/02/07 02-匿名函数和高阶函数
在switch case里有要用break,否则会有穿透效果
2020/02/07 02-匿名函数和高阶函数2020/02/07 02-匿名函数和高阶函数
这些都是需要掌握的写法
2020/02/07 02-匿名函数和高阶函数

函数

函数再JS就是一等公民,函数可以做参数,做返回值,高阶就出来了。
JS函数返回值看似多个,其实是逗号表达式,最后一个表达式的值,只要是表达式都有值

2020/02/07 02-匿名函数和高阶函数
这一块就是匿名函数,add标识符记住了
2020/02/07 02-匿名函数和高阶函数2020/02/07 02-匿名函数和高阶函数
直接告诉你fn没有定义
2020/02/07 02-匿名函数和高阶函数
写习惯JS用这个方式写比较好
2020/02/07 02-匿名函数和高阶函数
匿名函数往往在高阶函数里使用

const定义常量代表不允许改,但是实际let也可以定义

这样是递归,但是所有递归都需要退出条件
2020/02/07 02-匿名函数和高阶函数
这个sum其实是在内部使用,外部看不见
2020/02/07 02-匿名函数和高阶函数2020/02/07 02-匿名函数和高阶函数
fn和_sum只能在内部使用2020/02/07 02-匿名函数和高阶函数
这里是写递归的时候要用,所以要写
2020/02/07 02-匿名函数和高阶函数
函数和匿名函数,本质上都是一样的,函数要借助标识符,区别在于,函数会申明提升,函数表达式不会
2020/02/07 02-匿名函数和高阶函数![
函数不会申明提升
2020/02/07 02-匿名函数和高阶函数
function不是函数表达式了,是一个函数定义,但是实际不建议这么做,一般写的时候要用函数,函数就应该定义了
2020/02/07 02-匿名函数和高阶函数
2020/02/07 02-匿名函数和高阶函数
高阶函数,函数作为参数或返回一个函数
*2020/02/07 02-匿名函数和高阶函数
写一个计数器counter
2020/02/07 02-匿名函数和高阶函数
这就是高阶的使用方法,这就是函数作为返回值2020/02/07 02-匿名函数和高阶函数如果现在要变成生成器,返回的对象属性,必须支持value,才可以.value
2020/02/07 02-匿名函数和高阶函数
用of看看里面到底能否像数组一样出值,但是在用对象的时候,对象里的属性是不允许用of的,只能对象用in
2020/02/07 02-匿名函数和高阶函数
of拿的是内容,in是拿的,0,1,2,3,4索引
这里就是死循环了
2020/02/07 02-匿名函数和高阶函数
in取的是属性,不可以,在python里,生成器如果不给list,其实也是没有索引可以用的,实际就是yield出来的值,没有什么索引
2020/02/07 02-匿名函数和高阶函数
用c风格for循环控制拿几下即可
2020/02/07 02-匿名函数和高阶函数
这几个是新语法,ES6支持的
2020/02/07 02-匿名函数和高阶函数
这个是C风格的,所有浏览器都支持
2020/02/07 02-匿名函数和高阶函数
map函数
2020/02/07 02-匿名函数和高阶函数
这叫箭头函数,ES6支持2020/02/07 02-匿名函数和高阶函数
写一个变形
2020/02/07 02-匿名函数和高阶函数
箭头函数就跟lambda表达式(单行或者匿名函数)一样,这个也是匿名函数,这样高阶函数就出来了
2020/02/07 02-匿名函数和高阶函数
这是一个生成器对象产生
2020/02/07 02-匿名函数和高阶函数
成功
2020/02/07 02-匿名函数和高阶函数
这种语法ES6支持2020/02/07 02-匿名函数和高阶函数
另外一种通用,262开始就有
2020/02/07 02-匿名函数和高阶函数