学习JS的几个小笔记
2015-04-03 13:57
169 查看
好久没更新博客了,昨天花时间复习了一下JS的知识,有几个知识点在这里做一下笔记。
1.JS中的排序
下面是从JS API摘录的内容
sort方法返回一个元素已经进行了排序的 Array 对象。
arrayObj 必选项。任意 Array 对象。
sortFunction 可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。
sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的
Array 对象。
如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:
负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。
所以如果不加sortfunction的话,是无法对数值数组进行正确的排序的。在没加sortfunction的情况的,数值数组[4,10,30,200]在调用sort方法排序后会变成[10,200,30,4],显然这不是我们想要的结果。如果要实现数值数组的正确定义,最简单的办法就是这么定义sortfunction函数。
2.JS自定义对象
定义一个对象很简单,其实就是定义一个函数。现在定义一个Student对象,对象中有name,sex,age三个属性。
如果要定义对象方法,构造方法要改成这样
如果要实例化一个对象,有两种方法,可以直接在构造方法里给属性赋值,也可以调用无参构造函数实例化对象之后再一个个对象赋值。
方法一
方法二
调用对象的方法
3.JS函数加括号与不加括号
加括号会马上执行函数内部的代码,不加括号只是传了函数的地址而已,等到要执行的时候才会被调用
之前在看ajax的时候,有一句代码看不懂,知道了这个区别后才理解
var myRequest = new getXMLHTTPRequest();
...
....
myRequest.onreadystatechange = responseAjax;
responseAjax是一个回调函数,里面判断如果readyState等于4而且status等于200就执行某些操作。
这句代码并不会马上执行,而是当readystate改变的时候,才会自动调用onreadystatechange方法,然后再调用responseAjax方法。因为readystate会改变多次,所以这两个方法也会执行多次。
1.JS中的排序
下面是从JS API摘录的内容
sort方法返回一个元素已经进行了排序的 Array 对象。
arrayobj.sort(sortfunction)
arrayObj 必选项。任意 Array 对象。
sortFunction 可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。
sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的
Array 对象。
如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:
负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。
所以如果不加sortfunction的话,是无法对数值数组进行正确的排序的。在没加sortfunction的情况的,数值数组[4,10,30,200]在调用sort方法排序后会变成[10,200,30,4],显然这不是我们想要的结果。如果要实现数值数组的正确定义,最简单的办法就是这么定义sortfunction函数。
function numcompare(a,b){ return a-b; }
2.JS自定义对象
定义一个对象很简单,其实就是定义一个函数。现在定义一个Student对象,对象中有name,sex,age三个属性。
function Student(name,sex,age){ this.name=name; this.sex=sex; this.age=age; }这个函数就是创建Student对象的构造方法。
如果要定义对象方法,构造方法要改成这样
function PrintMsg(){ document.write("This student name is "+this.name); }
function Student(name,sex,age){ this.name=name; this.sex=sex; this.age=age; this.PrintMsg=PrintMsg; }
如果要实例化一个对象,有两种方法,可以直接在构造方法里给属性赋值,也可以调用无参构造函数实例化对象之后再一个个对象赋值。
方法一
atggdsai = new Student("dong","male","23");
方法二
nvshen = new Studenet(); nvshen.name = "minyu"; nvshen.sex = "female"; nvshen.age = 23;
调用对象的方法
nvshen.PrintMsg();
3.JS函数加括号与不加括号
加括号会马上执行函数内部的代码,不加括号只是传了函数的地址而已,等到要执行的时候才会被调用
之前在看ajax的时候,有一句代码看不懂,知道了这个区别后才理解
var myRequest = new getXMLHTTPRequest();
...
....
myRequest.onreadystatechange = responseAjax;
responseAjax是一个回调函数,里面判断如果readyState等于4而且status等于200就执行某些操作。
这句代码并不会马上执行,而是当readystate改变的时候,才会自动调用onreadystatechange方法,然后再调用responseAjax方法。因为readystate会改变多次,所以这两个方法也会执行多次。
相关文章推荐
- JS学习笔记-几个有趣的东西
- js学习笔记(几个特殊语句)
- js中屏幕尺寸计算的几个属性学习笔记
- JS学习笔记
- Oracle 学习过程中的笔记以及几个问题
- 学习altas笔记[客户端JS和Altas环境初始化关系和DataTable返回数据的客户端处理]
- 学习Altas 笔记[js调用重载的方法出错,如何处理]
- js宝典学习笔记,记录JAVA SCRIPT宝典中的内容
- js学习笔记(一)
- [学习笔记]几个英语短句(2)
- ajaxPro /prototype.js 学习笔记
- [学习笔记]学C#遇到的几个问题
- [转]JS宝典学习笔记
- Prototype.js 学习笔记
- js宝典学习笔记【转载】
- 学习笔记---使用prototype.js扩展struts标签实现xmlhttprequest
- ajaxPro /prototype.js 学习笔记
- JS宝典学习笔记(转)
- 学习Altas 笔记[JS简单调用服务端方法]
- JS宝典学习笔记(下)