说起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 的具体操作在本文中暂且没有滤过,我们会在稍后的讲解中有所选择性的涉及。

最新文章

  1. [Deprecated!] Android开发案例 - 微博正文
  2. 用Kotlin改写PHP程序是什么样的体验
  3. 点餐系统sprint3总结
  4. 验证radio 是否被选中
  5. 第一章 Mybtais的两种启动方式
  6. ZJOI2009 狼和羊的故事
  7. Spring ’14 Wave Update: Installing Dynamics CRM on Tablets for Windows 8.1
  8. Away3D带你360°漫游全景影像
  9. java第十四次作业
  10. Android基础知识05—活动的生命周期
  11. Bootstrap3 栅格系统-实例:手机、平板、桌面
  12. 配置solr6.2
  13. 常用git的命令
  14. 裸奔的bootloader单步调试
  15. Python: Ubuntu 安装numpy,scipy,matplotlib
  16. 利用bootstrap-datetimepicker实日历插件
  17. manifest.xml
  18. SCC缩点
  19. EXCEL某列长度超过255个字符导入SQL SERVER2005的处理方法
  20. Scala基础:定义变量和逻辑判断语句以及方法和函数

热门文章

  1. (转载)浅谈javascript的分号
  2. 登录MD5加盐处理
  3. 笔记-人老了-github
  4. HDOJ 2011 多项式求和
  5. 324. Wiggle Sort II
  6. Away3d 骨骼动画优化
  7. app启动其他应用
  8. MySQL基础 (DML)
  9. 最新Connectify注冊码(序列号) Connectify3.7序列号 破解版
  10. thinkphp 视图模型使用分析