第六届青训营笔记一| 青训营

37 阅读2分钟

这篇笔记主要记录如何写好JavaScript课上的内容并拓展了一些笔记

写好JS的原则

  • 定义变量时应指定数据类型。 当变量缺少类型信息时,会导致其他程序员难以理解代码。
  • 不要随意改变变量的类型。当需要将一个值转换其他类型时,使用一个新的变量。
  • 函数的返回类型应该是固定的
  • 最好不要将代码暴露在全局范围内。所有变量都在全局范围内,可能会导致命名冲突。
    • 可以使用闭包来隐藏元素变量,这样不会污染全局作用域,在局部作用域中查找变量也更快。
  • 不要随便使用闭包。JS是通过作用域链查找变量,如果在当前作用域中找不到变量,JS会在当前作用域的父作用域中查找,然后逐级查找全局作用域。所以闭包嵌套得越深,变量查找所需的时间就越长。
  • 使用es6让代码更加优雅

ES6

  • 使用箭头函数代替普通函数作为回调函数
  • 使用模板字符串拼接字符串和变量
  • 使用let或const代替var

模块化编程

无模块化会导致污染全局作用域,不利于大型项目的开发以及多人团队的共建。

模块化的雏形 - IIFE(立即执行函数,语法侧的优化)

本质是对作用域的把控,利用函数块级作用域实现

CJS

特征:

  • 通过module + exports 去对外暴露接口

  • 通过require来调用其他模块

  • 优点:从框架层面解决了依赖、全局变量污染的问题

  • 缺点:主要针对了服务端的解决方案,CommonJS是同步加载的。对于异步拉取依赖的处理整合不是那么的友好。

ES6模块化

引入关键字 —— import
导出关键字 —— export

  • 优点:通过一种最统一的形态整合了js的模块化
  • 缺点:本质上还是运行时的依赖分析