Chap 3 函数
1.函数定义包括函数声明和函数表达式,函数声明能力提升,可以使用在定义之前。
2.函数参数支持可选(?),必须是最后一个参数;支持默认值(参数类型后加=),必须是最后一个;支持可变参数(...)必须是最后一个。
3.函数支持重载,因为强语言类型的特性。而且重载函数支持特殊重载签名,其参数必须为字符串,可以根据字符串的内容重载,但是必须有一个未特殊签名的函数放到最后,例如:
interface Document{ create(tag:"div"):HTMLDIVEle; create(tag:"span"):HTMLSPANEle; create(tag:string):HTMLEle; }
4.var定义的变量的作用域在函数内,let和const是块级作用域,const不能修改。
5.IIFE(立即执行函数表达式)可以实现块级作用域名。例如:
var bar = 0; (function(){ var foo=0})();
class中的私有变量就是通过IIFE实现的。
函数支持泛型。
7.箭头函数会自带this变量,因此在setTimeout等函数中执行是,this引用属性不变。
8.异步编程:
传统的方法是回调函数,调用回调函数的函数优先级别高,称之为高阶函数
回调函数具有回调陷阱,不利于理解和阅读
Promise用于解决回调陷阱,其实现的库常用为:Q。Promise有三种状态:
pending:初始化
fulfilled:异步操作成功的状态
rejected:异步操作失败的状态
使用时先声明一个promise,然后调用then和catch方法分别处理fulfilled和rejected状态的处理动作。
9.关于前后端模板:
前端:handlebar
后端:velocity/freemarker/Thymeleaf等
作者:GunnerAha
链接:https://www.jianshu.com/p/42daf4a95dbc