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 元素的样式,实现动画效果.此框架会自动检测起始位置.转换单位.调整渲染的速度,以此来获得更流畅的渲染体 ...
随机推荐
- 【狼】unity3d collision获取碰撞的点的位置
void OnCollisionEnter(Collision ctl) { ContactPoint contact = ctl.contacts[]; Quaternion rot = Quate ...
- oracle自动编号
oracle自动编号 在access中有自动编号的数据类型,MSSQL和MYSQL也都有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值,而oracle没有自动增长的数据类型,我们需要建 ...
- .net开源工作流引擎ccflow
关于济南驰骋信息技术有限公司的.net开源工作流引擎 驰骋工作流引擎,工作流程管理系统:简称ccflow,驰骋一体化解决方案简称ccport. ccflow是济南驰骋信息技术有限公司向社会提供的一款1 ...
- 从Java视角理解CPU缓存(CPU Cache)
从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多 ...
- java 运行项目不放到tomcat下的webapps文件夹下放到自己建的文件夹中的处理办法
你需要在tomcat跟目录下的conf/server.xml中进行配置,配置方法如下: <Context path="/Project" docBase="D:\s ...
- Tomcat8 配置NIO
conf/server.xml 打开:<Executor name="tomcatThreadPool" namePrefix="catalina-exec-&qu ...
- 【Android - 框架】之Fresco的使用
当下有很多图片加载框架,常见的有Glide.Fresco.Picasso等.Glide因为其体积小.缓存机制强大等优点,受到了广大程序员的青睐:Fresco虽然体积比较大,缓存机制也没有Glide强大 ...
- WinForm中关于控件焦点的问题
方法一: 在打开一个窗体时,我们往往需要设置焦点让光标出现在我们希望它出现的位置上. 这时我们可以在窗体的Activated事件中设置焦点 例如我们希望光标在打开窗体的时候出现在textBox1上,我 ...
- nandflash中oob、ecc分析
1.为何需要分析? 最近一直接触这类驱动,如果对它的原理不懂的话,驱动调试会很麻烦!!!!!! 2.ecc? nand的纠错能力,目前有1位.4位和8位,也就是说在512字节中如果是4位的ecc那就可 ...
- Cocos2d-x 3.0 红孩儿私家必修 - 第二章 cpp-empty-test
上一章我们讲到说曾经的HelloWorld演示更名为cpp-empty-test. 本章我们来分析一下 执行程序,我们能够看到熟悉的HelloWorld程序:与之前cocos2d-x2.x版本号的He ...