什么是脚本语言?
传统语言要经过编写、编译、链接、运行过程
为了缩短这个过程,以文本方式保存,只在被调用时进行解释或编译,需要解释器才能
1、Javascript的重要概念:
作用域
上下文
闭包
函数
原型
事件编程
回调
继承
2、Javascript规范:
https://github.com/airbnb/javascript
3、Node.js
服务器端Javascript解释器
ChromeV8引擎
非阻塞IO
事件驱动
模块定义:
模块加载:
模块配置:
文件读写:
数据库:
……
http://nodejs.org/api/
4、Npm
管理Node.js模块的依赖
环境变量NODE_PATH
npm install express
npm install –g express
npm install –g express@0.3.0
本地NPM库:npm-server
https://github.com/stagas/npm-server
5、CommonJS
CMD:SeaJS
依赖就近
https://github.com/seajs/seajs/issues/242
NODEJS:
AMD Compatibility
http://nodejs.org/docs/v0.5.0/api/modules.html#aMD_Compatibility
6、Express
简单灵活的node.js Web应用框架
提供丰富的HTTP工具
路由
MVVM
环境切换
HTTP处理:参数、cookie、header…
异常处理
模板渲染:ejs,jade..
http://expressjs.com/guide.html
7、Mocha
单元测试
测试框架
断言库
测试用例
覆盖率
Mock
私有方法测试
持续集成
http://html5ify.com/unittesting/slides/index.html#/
8、Moogoose
Schema:文件形式存储的数据库模型骨架
Model:由Schema发布生成的模型,具有抽象属性与行为的数据库操作对象
Entity:由Model创建的实体,同样影响数据库
9、Connect
可扩展的HTTP服务器中间件
HTTP插件
basicAuth
bodyParser
compress
cookieParser
cookieSession
csrf
directory
errorHandler
favicon
Json
limit
logger
methodOverride
multipart
urlencoded
query
responseTime
session
static
staticCache
subdomains
vhost
10、Eclipse Nodejs
11、PhantomJS
命令行WebKit
执行功能测试
屏幕抓屏
页面自动化操作
性能监控及测试
http://phantomjs.org/documentation/
12、Grunt
基于任务的Javascript项目构建工具
完成文件压缩、合并、打包等
Gruntfile.js:Grunt任务声明的地方
grunt-cli:命令行工具
grunt:构建工具
grunt-init:脚手架工具
预定义任务:concat、uglify、jshint等
优势
环境/平台依赖小
便捷的下载/版本管理
插件丰富
活跃的社区
http://gruntjs.com/getting-started
http://coding.smashingmagazine.com/2013/10/29/get-up-running-grunt/
13、Bower
用于Web前端开发的包管理器
管理前端资源的依赖,如css、javascript等
可脱离Node.js范畴
bower.json:前端资源依赖声明
14、AngularJS
Google开发,广泛使用
双向的数据绑定:同步DOM和Model
模板:输入DOM而非String
MVC:更类似MVVM
DI:依赖注入,观察者模式
Directives:自定义指令(标签、属性)
测试友好:支持全面测试覆盖
UI BootStrap:AngularUI
15、Krakenjs
Paypal开发的Web框架
基于Grunt和Express
The kraken suite
16、Sass
变量
计算功能
嵌套
注释
继承
Mixin
颜色函数
插入文件
条件语句
循环语句
自定义函数
我们 Sass or Less ?
Compass?
http://koala-app.com/index-zh.html
17、Node-webkit
使用HTML5、CSS3、Javascript编写桌面程序UI
使用Chromium实现页面排版渲染和Javascript解译
使用Node.js库实现访问本地OS
合并了Chromium和Node.js各自里面的V8引擎
https://github.com/rogerwang/node-webkit
参考:
http://123.jser.us/
http://www.csser.com/
http://momentjs.com/