Learning Typescript 读书笔记2

96
GunnerAha
2018.06.04 09:11* 字数 455

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实现的。

  1. 函数支持泛型。

7.箭头函数会自带this变量,因此在setTimeout等函数中执行是,this引用属性不变。

8.异步编程:

  • 传统的方法是回调函数,调用回调函数的函数优先级别高,称之为高阶函数
  • 回调函数具有回调陷阱,不利于理解和阅读
  • Promise用于解决回调陷阱,其实现的库常用为:Q。Promise有三种状态:
    • pending:初始化
    • fulfilled:异步操作成功的状态
    • rejected:异步操作失败的状态
      使用时先声明一个promise,然后调用then和catch方法分别处理fulfilled和rejected状态的处理动作。

9.关于前后端模板:

  • 前端:handlebar
  • 后端:velocity/freemarker/Thymeleaf等
学习笔记
Gupao