目的是写出这个函数,还是想要这个结果??
创新互联公司是一家以网络技术公司,为中小企业提供网站维护、成都做网站、网站建设、外贸营销网站建设、网站备案、服务器租用、国际域名空间、软件开发、成都微信小程序等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站来电联系:13518219792
如果是这种数字的话,可以使用自带的sort排序
var arr = [7,5,2,9,7];
arr.sort(function(a,b){
return ab;
//return ab;//可试试这种的结果。
})
console.log(arr);
闭包
闭包就是能够读取其他函数内部变量的函数。
最大用处有2个:
1.读取函数内部变量
2.让这些变量的值始终保持在内存中
参考资料:
封装
其实就是用js模拟出类的写法,将你写成程序按照面向对象的思想去包装起来,方便调用
参考资料:
原型
每个javascript对象都有一个原型对象(简称原型),这个原型是由该对象的构造函数所定义(javascript自动创建的),并且对象继承原型的所有属性和方法(函数)。
参考资料:
作用域链
Javascript作用域问题简单的可以用一句话来概括:两种类型的作用域( global, function)、三条作用域链。
理解两种三条前需要明白两点:
1) JavaScript是词法作用域,当一个函数被定义后,它的作用域链就作为函数的内部状态被保存了。
2) 在函数被定义时虽然作用域链确定了,但作用域链中的属性并没有确定。
两种类型的作用域:
1) 全局作用域 -- 变量为window对象的属性(默认浏览器环境中)。 作用域链:window
2) 函数作用域-- 变量查找的的顺序(即作用域链) 当前call object -- .... -- window object
特殊的一条作用域链:
通过HTML属性定义的事件处理代码:匿名函数的call object -- 当前节点 -- 父节点--...-- window object
参考资料:
目前来看,JS框架以及一些开发包和库类有如下几个,Dojo 、Scriptaculous 、Prototype 、yui-ext 、Jquery 、Mochikit、mootools 、moo.fx
Dojo (JS library and UI component ):
Dojo是目前最为强大的j s框架,它在自己的Wiki上给自己下了一个定义,dojo是一个用JavaScript编写的开源的DHTML工具箱。dojo很想做一个“大一统”的 工具箱,不仅仅是浏览器层面的,野心还是很大的。Dojo包括ajax, browser, event, widget等跨浏览器API,包括了JS本身的语言扩展,以及各个方面的工具类库,和比较完善的UI组件库,也被广泛 应用在很多项目中,他的UI组件的特点是通过给html标签增加tag的方式进行扩展,而不是通过写JS来生成,dojo的API模仿Java类库的组织 方式。 用dojo写Web OS可谓非常方便。dojo现在已经4.0了,dojo强大的地方在于界面和特效的封装,可以让开发者快速构建一些兼容标准的界面。
优点:库相当完善,发展时间也比较长,功能强大,据说利用dojo的io.bind()可以实现comet,看见其功能强大非一般,得到IBM和SUN的支持
缺点:文件体积比较大,200多KB,初次下载相当慢,此外,dojo的类库使用显得不是那么易用,j s语法增强方面不如prototype。
Prototype (JS OO library):
是一个非常优雅的JS库,定义了JS的面向对象扩展,DOM操作API,事件等等,以prototype为核心,形成了一个外围的各种各样 的JS扩展库,是相当有前途的JS底层框架,值得推荐,感觉也是现实中应用最广的库类(RoR集成的AJAX JS库),之上还有 Scriptaculous 实现一些JS组件功能和效果。
优点:基本底层,易学易用,甚至是其他一些js特效开发包的底层,体积算是最小的了。
缺点:如果说缺点,可能就是功能是他的弱项
Scriptaculous (JS UI component based on prototype):
Scriptaculous是基于prototype.js框架的JS效果。包含了6个js文件,不同的文件对应不同的js效果,所以说,如果底层用 prototype的话,做js效果用Scriptaculous那是再合适不过的了,连大名鼎鼎的digg都在用他,可见不一般
优点:基于prototype是最大的优点,由于使用prototype的广泛性,无疑对用户书锦上添花,并且在《ajax in action》中就拿Scriptaculous来讲述js效果
缺点:刚刚兴起,需要时间的磨练
yui-ext (JS UI component):
基于Yahoo UI的扩展包yui-ext是具有CS风格的Web用户界面组件 能实现复杂的Layout布局,界面效果可以和backbase媲美,而且使用纯javascript代码开发。真正的可编辑的表格Edit Grid,支持XML和Json数据类型,直接可以迁入grid。许多组件实现了对数据源的支持,例如动态的布局,可编辑的表格控件,动态加载的Tree 控件、动态拖拽效果等等。1.0 beta版开始同Jquery合作,推出基于jQuery的Ext 1.0,提供了更多有趣的功能。
优点:结构化,类似于java的结构,清晰明了,底层用到了Jquery的一些函数,使整合使用有了选择,最重要的一点是界面太让让人震撼了。
缺点:太过复杂,整个界面的构造过于复杂。
Jquery :
jQuery是一款同prototype一样优秀js开发库类,特别是对css和XPath的支持,使我们写js变得更加方便!如果你不是个js高手又想写出优 秀的js效果,jQuery可以帮你达到目的!并且简介的语法和高的效率一直是jQuery追求的目标,
优点:注重简介和高效,js效果有yui-ext的选择,因为yui-ext 重用了很多jQuery的函数
缺点:据说太嫩,历史不悠久。
Mochikit :
MochiKit自称为一个轻量级的js框架。MochiKit 主要受到 Python 和 Python 标准库提供的很多便利之处的启发,另外还缓解了浏览器版本之间的不一致性。其中的 MochiKit.DOM 尤其方便,能够以比原始 JavaScript 更友好的方式处理 DOM 对象。MochiKit.DOM 大部分都是针对 XHTML 文档定制的,如果与 MochiKit 和 Ajax 结合在一起,使用 XHTML 包装的微格式尤其方便。Mochikit可以直接对字符串或者数字格式化输出,比较实用和方便。它还有自己的 js 代码解释器
优点:MochiKit.DOM这部分很实用,简介也是很突出的
缺点:轻量级的缺点
mootools :
MooTools是一个简洁,模块化,面向对象的JavaScript框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的JavaScript代码。Mootools跟prototypejs相类似,语法几乎一样。但它提供的功能要比prototypejs多,而且更强大。比如增加了动画特效、拖放操作等等。
优点:可以定制自己所需要的功能,可以说是prototypejs的增强版。
缺点:不大不小,具体应用具体分析
moo.fx :
moo.fx是一个超级轻量级的javascript特效库(7k),能够与prototype.js或mootools框架一起使用。它非常快、易于使用、跨浏览器、符合标准,提供控制和修改任何HTML元素的CSS属性,包括颜色。它内置检查器能够防止用户通过多次或疯狂点击来破坏效果。moo.fx整体采用模块化设计,所以可以在它的基础上开发你需要的任何特效。
优点:小块头有大能耐
缺点:这么小了,已经不错了
js是使用javascript编写的脚本文件
其作用大概无非是以下几种
1动态调节网页元素
2改善用户体验如ajax
3用于制作一些特效,如文字滚动,图片遮罩等
4用于客户端的校验如表单校验
5用于调用某个页面(通常是用src引入一个动态页,而该动态页会动态生成js文件)
而你所说的后台js的功能也就是上面的几种
具体哪方面的都有可能
函数(方法Function)是对js操作过程的封装,以后操作同样的过程,只要调用相应的函数(方法)即可。对象同样是对js代码封装,不过对象可以封装函数(方法)。比如把某一类的函数(方法)都封装到某个对象中。。这样可以系统的管理调用函数(方