2020/02/07 02-匿名函数和高阶函数
console.log跟python的print有点不一样,不能每次控制都换行,先试试打方阵,插值需要用反引号
看一下对角线,修改判断
每一行都需要清空
对象可以用索引的方式来取,这里是插值
插值的要求是${表达式}
for of是新语法,只能迭代数组,迭代数组的元素
在switch case里有要用break,否则会有穿透效果
这些都是需要掌握的写法
函数
函数再JS就是一等公民,函数可以做参数,做返回值,高阶就出来了。
JS函数返回值看似多个,其实是逗号表达式,最后一个表达式的值,只要是表达式都有值
这一块就是匿名函数,add标识符记住了
直接告诉你fn没有定义
写习惯JS用这个方式写比较好
匿名函数往往在高阶函数里使用
const定义常量代表不允许改,但是实际let也可以定义
这样是递归,但是所有递归都需要退出条件
这个sum其实是在内部使用,外部看不见
fn和_sum只能在内部使用
这里是写递归的时候要用,所以要写
函数和匿名函数,本质上都是一样的,函数要借助标识符,区别在于,函数会申明提升,函数表达式不会![
函数不会申明提升
function不是函数表达式了,是一个函数定义,但是实际不建议这么做,一般写的时候要用函数,函数就应该定义了
高阶函数,函数作为参数或返回一个函数
*
写一个计数器counter
这就是高阶的使用方法,这就是函数作为返回值如果现在要变成生成器,返回的对象属性,必须支持value,才可以.value
用of看看里面到底能否像数组一样出值,但是在用对象的时候,对象里的属性是不允许用of的,只能对象用in
of拿的是内容,in是拿的,0,1,2,3,4索引
这里就是死循环了
in取的是属性,不可以,在python里,生成器如果不给list,其实也是没有索引可以用的,实际就是yield出来的值,没有什么索引
用c风格for循环控制拿几下即可
这几个是新语法,ES6支持的
这个是C风格的,所有浏览器都支持
map函数
这叫箭头函数,ES6支持
写一个变形
箭头函数就跟lambda表达式(单行或者匿名函数)一样,这个也是匿名函数,这样高阶函数就出来了
这是一个生成器对象产生
成功
这种语法ES6支持
另外一种通用,262开始就有