在现代 JavaScript 开发中, 处理状态, 显得很重要.
可变对象与不可变对象
可变对象与不可变对象概念很清楚, 可变对象指的是在创建后值仍可以被改变, 不可变对象指的是创建后值无法被改变....FRP 具有两个很明显的特点:
函数或者类型有明确的定义
操作的是连续变化的值
作用域和闭包
闭包作为最常见的面试题经常被提及, 但是很多资深的前端开发都解释不清楚闭包, 即使他们理解闭包....闭包的形成在于, 当一个在函数内声明的函数可以引用外部函数的局部变量. 就形成了闭包....在双向数据绑定中, 数据是在两个方向上流动的, JS可以更新 Model 数据, View 层 也可以更新 Model 数据. AngularJs 的1.x 版本是双向数据流的典型实现....AngularJS 1.x 使用的是脏检查的方式, 具体做法是对View 中涉及到的 Model 进行深度比较. 脏检查的优点在于它的简单和可预测, 不涉及到 API 和对象的变更.