您的位置:首页 > Web前端 > JavaScript

学习JS的几个小笔记

2015-04-03 13:57 169 查看
好久没更新博客了,昨天花时间复习了一下JS的知识,有几个知识点在这里做一下笔记。

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会改变多次,所以这两个方法也会执行多次。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: