JavaScript
JavaScript 是 web 开发人员必须学习的 3 门语言中的一门,都包括了HTML 定义了网页的内容;CSS 描述了网页的布局;JavaScript 控制了网页的行为;
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
JS的主要功能有:
1.嵌入动态文本于HTML页面。
2.对浏览器事件做出响应。
3.读写HTML元素。
4.在数据被提交到服务器之前验证数据。
5.检测访客的浏览器信息。 控制cookies,包括创建和修改等。
6.基于Node.js技术进行服务器端编程。
JavaScript运行环境
目前JavaScript脚本的运行环境有浏览器和node.js环境两种。
浏览器内核
JavaScript被定义为一种浏览器的脚本语言,一直以来其运行环境都是客户端浏览器,因为JavaScript设计的初衷就是做一些浏览器与用户的交互和一些网页的特效来补充HTML和CSS的不足。
node.js环境
Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。使用Node.js可以方便地搭建响应速度快、易于扩展的网络应用。
流行的JavaScript框架
jQuery
jQuery提供了一个强大的选择器引擎,能通过元素标签名、类名、属性等各种能想到的方式获取DOM元素,并注册jQuery拓展的方法。
jQuery简化了一些操作,并提供更为人性化的API,最重要的是开创性的使用了构造器模式实现了链式调用,并且将大量方法提供到jQuery的DOM包装对象上,为jQuery插件的编写提供了更大的空间。
jQuery凭借容易使用的DOM操作API、强大的选择器和插件机制普及开来,并深深的影响了JavaScript这门语言。
Backbone和AngularJS
2010年,Jeremy Ashkenas发布了Backbone,这是第一个旨在创建单页应用程序的框架。Jeremy已经看到了一个巨大的jQuery应用程序可能变得多么混乱,并希望有一个更清晰的方法来纠正数千个选择器和交织事件处理程序。有趣的是,Backbone并不需要jQuery,它是一个独立的框架,但是如果存在jQuery,可以启用某些功能。
与此同时,Adam Abrons和Misko Hevery创建了AngularJS,当Hevery在公司工作时,不久后受到Google的关注。Angular是第一个为前端应用程序开发提供完整架构的框架。
AngularJS的主要功能之一是双向数据绑定,并提供了将模型数据绑定到HTML标记并实时更新的方法。开发人员称这种“automagic”。Angular也支持依赖注入和创建可重用组件的能力。
Angularjs的一些特点
1.由于低版本浏览器中的JavaScript不支持对象属性的赋值、取值钩子(setter、getter),Angular为了实现使用了定时器循环的脏检查,这对低版本和移动端的性能造成影响。
2.Angularjs为了能收集用户输入,覆盖了window上一些特定的对象,造成一定的侵入性,在技术选型上需要特别注意。
React
React 是一个用于构建用户界面的 JAVASCRIPT 库。
React 主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。
React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。
React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。
特点
1.声明式设计 −React采用声明范式,可以轻松描述应用。
2.高效 −React通过对DOM的模拟,最大限度地减少与DOM的交互。
3.灵活 −React可以与已知的库或框架很好地配合。
4.JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。
5.组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。
6.单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。
Vue
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。