javascript的框架演化
说起javascript不同的人或许有不同的看法,一些资深后台程序员在刚开始的时候根本没有把它当作是一门编程语言,但是随着后面js框架的出现,以及面向对象的程序设计,还有原型,闭包的不断使用,后台程序员也开始了用新的眼光来看待这个脚本语言了,在今天我们就来浅析一下这个刚开始为人所不重视的语言是怎样发生变化的,以及其自身的语法规则。
在原生js中主要的内容有:基础的语法,for if do while 循环,还有一个switch,接下来就是事件,这个大约存在有22个事件,但是大部分都没有怎么使用,最为常用的还是平常使用的鼠标点击事件,键盘事件,接着就是DOM操作,主要的就是克隆节点,操作节点属性等等,如果使用原生js代码的话会显得有些麻烦,编码的速度和效率不是很高,这个我们后面有更好的选择,这里暂且不谈,还有一个相对应的就是BOM这个应用相对较少,主要用在页面的跳转上,最为熟悉的就是我们的js操作样式表,进行样式属性的获取与改变,通过这样我们就能动态的进行style操作了,这一点相当好,接下来就是我们原生js最为常用的功能了,表单,说起表单我们都不陌生,表单数据的提交,对于我们收据用户数据以及进行处理保管数据有很强的操作性。
在这里,也是使用js最多的一种操作了,主要包括了表单的验证,对用户输入的控制,同时这一点会引入我们的正则表达式,通过严格的表单验证可以确保我们收集数据的准确性和安全性,避免一些注入式的脚本攻击,这里的脚本攻击不同于我们的XSS,跨站攻击脚本攻击,通过严格的匹配就能确保这些夹杂在表单中的代码不能提交。
当我们写原生的js代码久了之后就会发现虽然执行的性能是不错,但是花费的时间确实很多,同样是获取一个节点的id,即使我们可以自己封装方法,但是代码仍然显得很臃肿,有没有一个新的方法可以简化这些代码,提高我们的开发效率呢?这个时候我们的jquery就诞生了,作为js的框架之一,jquery的主要特性就是对我们原生的js代码进行了一个封装,而我们使用jquery的主要方向就是特效的实现,里面同样涉及到DOM的操作,不过相比原生js而言,代码数量已经优化很多了,在这里值得一提的就是我们的ajax,写过原生ajax的都知道,一旦我们要发送一个ajax请求的话步骤很繁琐,需要创建对象啊,什么响应码的判断啊,各种杂乱,但是到了jquery这里,就简单的太多了,主要的使用方法在这里不谈,接下来就是我们jquery的动画了,这个主要是依赖于css3动画,结合自身动画而言的,最后需要提到的就是我们的事件,没错,在js中我们有很多的事件,在jquery中我们仍然有很多的事件,但是这里的事件和在js中稍微有所不同,这里涉及到jquery对象和js对象之间的转化,两者是不能混在一起使用的,在使用之前是需要进行相互转换的,具体的转化方法在这里也不谈。
当我们写jquery到了一定的时间之后,或许你就会发现,jquery虽然简化了我们的代码,提高了快速化开发的效率,但是自身缺少模块化的东西,只能分散使用而不能将一些功能进行拆分成模块化,在之后的使用中可以根据我们的需要进行调用,现在我们的angular框架就出现了,其主要特征就是依赖注入,进行模块化的拆分以供调用,这正解决了我们原生js和jquery中的种种缺点。
很值得一提的就是我们的angular对DOM操作进行封装的很好,里面的事件都是基于模块化的主要使用指令ng-app等指令集合进行操作事件的,所以angular主要是以时间事件为驱动,为业务流程而生的框架,在这里可以解决我们开发中遇到的各种问题,进行模块化编程,进行管理,控制,大大提高了开发的效率和质量。
以上就是js中相互互补的框架之间的关系,其中涉及到的js,jquery angular 的具体操作在本文中暂且没有滤过,我们会在稍后的讲解中有所选择性的涉及。
javascript的框架演化的更多相关文章
- javascript单元测试框架mochajs详解
关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开 ...
- JavaScript单元测试框架JsUnit基本介绍和使用
JavaScript单元测试框架JsUnit基本介绍和使用 XUnit framework XUnit是一套标准化的独立于语言的概念和结构集合,用于编写和运行单元测试(Unit tests). 每一个 ...
- 一个简单的、面向对象的javascript基础框架
如果以后公司再能让我独立做一套新的完整系统,那么我肯定会为这个系统再写一个前端框架,那么我到底该如何写这个框架呢? 在我以前的博客里我给大家展示了一个我自己写的框架,由于当时时间很紧张,做之前几乎没有 ...
- 12种JavaScript MVC框架之比较
Gordon L. Hempton是西雅图的一位黑客和设计师,他花费了几个月的时间研究和比较了12种流行的JavaScript MVC框架,并在博客中总结了每种框架的优缺点,最终的结果是,Ember. ...
- JavaScript前端框架的思考
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:现在JavaScript前端框架层出不穷,尤其Angular进入到2.x时候之后,我们 ...
- JavaScript单元测试框架-Jasmine
Jasmine的开发团队来自PivotalLabs,他们一开始开发的JavaScript测试框架是JsUnit,来源于著名的JAVA测试框架JUnit.JsUnit是xUnit的JavaScript实 ...
- 【JavsScript】JavaScript MVC 框架技术选型
你很喜欢Gmail和Trello之类的单页面应用,但是不太确定该从何开始.也许你的JavaScript代码是如此的杂乱无章,以致于你很想在下一个项目上尝试下JavaScript MVC库和框架,却苦于 ...
- 【JavsScript】JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember
摘要:选择JavaScript MVC框架很难.一方面要考虑的因素非常多,另一方面这种框架也非常多,而要从中选择一个合适的,还真得费一番心思.本文对JavaScript MVC框架Angular.Ba ...
- 给力的轻量级JavaScript动画框架 - jsMorph
jsMorph 是一个独立的轻量级 JavaScript 动画框架,可以用它来操纵多个 HTML 元素的样式,实现动画效果.此框架会自动检测起始位置.转换单位.调整渲染的速度,以此来获得更流畅的渲染体 ...
随机推荐
- 使用Git将本地代码上传到GitHub
#1注册GitHub账号 *1)到https://github.com/注册GitHub账号 #2在GitHub上建立GitHub仓库 *1)登录后点击右下方的"new repository ...
- 如何 对 Windows 窗体控件进行线程安全调用
//主线程 public delegate void UpdateMessage(string mes); public void UpdatePortMessage(string mes) { th ...
- python 正则表达式(一)
正则表达式(regular exprssion)是一种形式化语法描述的文本匹配模式.模式被解释为一组指令,然后会执行这组指令.以一个字符串作为输入,生成一个匹配的子集或源字符串的修改版本. 表达式可以 ...
- UVa11090 Going in Cycle!!
UVa11090 Going in Cycle!! 链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34650 [思路] ...
- hdu 4284 状态压缩
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4284 #include<cstdio> #include<cstring> # ...
- 两种常用的MySQL官方客户端软件
本博文的主要内容有 .命令行客户端软件---MySQL Command Line Client .MySQL-Workbench客户端软件 1.命令行客户端软件---MySQL Command Lin ...
- Servlet实现表单提交(MyEclipse10,Tomcat7.0,JDK1.7,)——Java Web练习(一)
1.MyEclipse|File|New|Project|Web Project 填写Project Name:exServlet,点选Java EE 6.0(配套Tomcat7.0) 2.代码 ...
- conv2用法
1.用法 C=conv2(A,B,shape); %卷积滤波 A:输入图像,B:卷积核 假设输入图像A大小为ma x na,卷积核B大小为mb x nb,则 当sha ...
- uva1393 Highways
留坑(p.339) 已填(膜汪) 每条直线至少经过两个点,我们不妨在经过的所有点中的第二个点统计它 设f[i][j]表示i * j的答案,那么显然可以用f[i][j] = f[i - 1][j] + ...
- Oracle 同步表权限分配(同义词)
新建了同义词之后还要 分配权限