什么是FIS?

FIS 前端集成解决方案 Front-end Integrated Solution
 
什么是GIT和SVN ?
简单来说GIT和SVN都是版本管理系统。GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库
 
什么是CoffeeScript?
CoffeeScript是一套JavaScript的转译语言,相当于是JavaScript预编译有点像css预编译的意思
 
什么是grunt、 gulp​?
前端构建工具也可以理解为前端自动化工具
  1.  可以自动编译less,sass为css
  2.  文件合并
  3.  文件压缩
  4.  语法检查
  5.  监听文件变化

什么是CommonJS?

根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。可以理解为CommonJS是一种规范,是用在服务器端的,NodeJS是这种规范的实现。CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。
开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中:
①服务器端JavaScript应用程序
②命令行工具
③图形界面应用程序
④混合应用程序(如,Titanium或Adobe AIR))

什么是模块

  • DuoJS
  • RequireJS
  • Sea.js
  • ReactJS
  • AngularJS

浏览器本身并不提供模块管理的机制,为了调用各个模块,有时不得不在网页中,加入一大堆script标签。这样就使得网页体积臃肿,难以维护,还产生大量的HTTP请求,拖慢显示速度,影响用户体验。
为了解决这个问题,前端的模块管理器(package management)应运而生。它可以轻松管理各种JavaScript脚本的依赖关系,自动加载各个模块,使得网页结构清晰合理。不夸张地说,将来所有的前端JavaScript项目,应该都会采用这种方式开发。
最早也是最有名的前端模块管理器,非RequireJS莫属。它采用AMD格式,异步加载各种模块。具体的用法,可以参考我写的教程。Require.js的问题在于各种参数设置过于繁琐,不容易学习,很难完全掌握。而且,实际应用中,往往还需要在服务器端,将所有模块合并后,再统一加载,这多出了很多工作量。

 

模块管理器

  • AMD
  • CMD
  • Browserify
  • Bower
  • Component
  • NPM

NPM是nodejs官方未nodejs定制的一个工具,是Node.js的包管理器,是Node Packaged Modules的简称,通过npm可以下载安装nodejs的模块包,nodejs有很多优秀的模块包可以让开发这快速开发。是为了帮助Node解决依赖包的安装问题
NPM属于Node模块的管理器。而spm和bower、Component是前端模块管理,作为一个静态资源共享平台,用来发布和共享前端模块

AMD、CMD是用在浏览器端的,异步的,如RequireJS 和SeaJS
AMD((Asynchromous Module Definition) 是 RequireJS 在推广过程中对模块定义的规范化产出
CMD是SeaJS 在推广过程中对模块定义的规范化产出
CMD和AMD的区别有以下几点:
①对于依赖的模块AMD是提前执行,CMD是延迟执行。不过RequireJS从2.0开始,也改成可以延迟执行(根据写法不同,处理方式不通过)
②CMD推崇依赖就近,AMD推崇依赖前置。
③AMD的api默认是一个当多个用,CMD严格的区分推崇职责单一。例如:AMD里require分全局的和局部的。CMD里面没有全局的 require,提供 seajs.use()来实现模块系统的加载启动。CMD里每个API都简单纯粹。

Browserify 是目前最常用的 CommonJS 格式转换的工具。Browserify本身不是模块管理器,只是让服务器端的CommonJS格式的模块可以运行在浏览器端。这意味着通过它,我们可以使用Node.js的npm模块管理器。所以,实际上,它等于间接为浏览器提供了npm的功能

spm和bower、component都是针对前端模块化共享而提供的解决方案

最后
- Browserify和Webpack属于同一类型技术
- GIT和SVN 属于同一类型技术
- AMD CMD Bower Component NPM属于同一类型技术
- CommonJS 是一种规范 AngularJS RequireJS ReactJS SeaJS是基于这种规范上应运而生的框架

初级web前端工程师(js)

免费的前端面试题,助你提升每一天!