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 元素的样式,实现动画效果.此框架会自动检测起始位置.转换单位.调整渲染的速度,以此来获得更流畅的渲染体 ...
随机推荐
- 【转】在Ubuntu下编译Android源码并运行Emulator
原文网址:http://www.mcuos.com/thread-4553-1-1.html 建立编译环境 1.在VirtualBox上安装Ubuntu 2.安装JDK $ sudo apt-ge ...
- 【转】VSync Count 垂直同步
原文:http://blog.csdn.net/yesy10/article/details/7794556 Unity3D中新建一个场景空的时候,帧速率(FPS总是很低),大概在60~70之间.一直 ...
- 这几天阅读的shadowgun的几个shader
直接从阅读时记录的笔记摘抄过来,写的比较随意. 1. MADFINGER-blinking-god-rays 除了可以用于实现太阳光线效果,还能调整参数让颜色随时间淡入淡出闪烁,能做出想灯光之类的效果 ...
- Java Web中web.xml的作用
每一个javaWeb工程都有一个web.xml配置文件,那么他到底有什么作用呢?它是每一个web工程都必的必须的吗? web.xml文件是用来初始化工程配置信息的,比如说welcome页面,fil ...
- 【Javascript&Jquery基础归纳】- 加载相关
1.window.onload 必须等到Dom所有元素.包括图片加载完毕后加载,只能编写一个. 2.$(document).ready() DOM结构加载完毕后马上执行,并且可以编写多个. ...
- The Fortified Forest - POJ 1873(状态枚举+求凸包周长)
题目大意:有个国王他有一片森林,现在他想从这个森林里面砍伐一些树木做成篱笆把剩下的树木围起来,已知每个树都有不同的价值还有高度,求出来砍掉那些树可以做成篱笆把剩余的树都围起来,要使砍伐的树木的价值最小 ...
- postgresql的/d命令
ostgreSQL-psql常用命令 文章索引 [隐藏] \d命令 \d命令 1 2 3 格式: \d [ pattern ] \d [ pattern ] + 该命令将显示每个匹配关系(表,视图 ...
- uvalive4513
https://vjudge.net/problem/UVALive-4513 终于做出来了......... 各种sb错误,最后对拍出来了,还没改对..................... 快半天 ...
- 构造Scala开发环境并创建ApiDemos演示样例项目
从2011年開始写Android ApiDemos 以来.Android的版本号也更新了非常多,眼下的版本号已经是4.04. ApiDemos中的样例也添加了不少,有必要更新Android ApiDe ...
- DeDeCMS 每次都被黑出翔了!!DEDECMS漏洞扫描
在dedecms基础上用插件的形式制作了一分类信息平台.结果问题不断的接踵而至.每次上去扫描一下.各种漏洞.危急代码一堆一堆的.全然被黑出翔了. 之所以这种原因, 1)开源程序的开放性,让全部人都能够 ...