函数扩展
参数默认值
这个参数默认值有些像Java里面注解的默认值,跟dart语言中的默认值有着神似之处,要不然怎么说dart和js很像呢。
先上代码吧
1 | { |
rest参数
rest参数就是… , 应用场景就是在参数数量可变或者不可预知的时候使用的,这时候…后面的形参会被变成数组传进函数,跟java的…差不多,只是java里面是这样的(java8新特性)
1 | public void test(int... arr){ |
js代码是这样的
1 | { |
尾调用
其实就是某个函数的最后一步再调用另一个函数,使用递归函数就经常会有尾递归的情况
1 | { |
箭头函数
一个革命性的新特性,向着函数式编程挺进。在java里面有lambda表达式(->),dart中跟js一样是=>,就叫它胖箭头吧。。。
1 | { |
this绑定
这是一个概念性的问题,在没有箭头函数的函数里面,this就是代表调用这个函数的对象,所以当一个函数中调用另一个函数的时候this可能会发生变化。但是在箭头函数中,this是代表调用这个(箭头函数的函数)的对象,所以箭头函数会是this不变化,不是绝对的具体看情况。
对象扩展
这里的对象是指Object
简洁表达式
1 | let o = 1; |
属性表达式
1 | //属性表达式 |
新增API
Object.is()
1 | console.log('字符串',Object.is('abc','abc'));//true 相当于=== |
Object.assign()
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
语法:Object.assign(target, …sources); 返回拷贝后的对象
1 | const object1 = { |
Object.entries()
1 | let test={k:123,o:456}; |