js基础知识1

已经基本掌握:

数据类型、选择语句、循环语句。

比较生疏的部分:

函数定义、嵌套, 数组, 原型函数

以下是细节:

--------------------------------

函数部分

--------------------------------

1.基本方式

function fun_name(){} //没有参数

function fun_name(a, b){} //有参数

2.很独特的定义方式,别的语言少见。
定义方式:var f=new Function("x","y","return x*y");
等价于: function f(x,y){ return x*y;}

3.以函数作为参数的函数

4.变量空间:全局 和 函数内部。

局部和全局重名的变量,采用局部的。

--------------------------------

数组部分

--------------------------------

(1)定义方式:
1)var a=new Array();
2)var b=new Array(size); //定义初始大小,而不是固定就这么大。
3)var c=new Array(d1,d2,..., dn); //如果仅用一个数字,会被当做第二种方法-数组大小,而不是数组元素。
4)var d=[d1,d2, ... , dn];
5)var e=[];

(2)访问数组:
1)[]运算符访问数组中的一个单元;
2)a[0],可以读也可以写;
3)索引从0开始;
4)a[x]=n直接创建了数组中的一个单元,而且赋了值n。

(3)length就是数组的最大坐标+1。

这个值可写,也就是可以定义。
如果定义的比原来小,则后面的被截掉,找不到了。
如果比原来的大,则后面的同样没有定义。
colors.length=2;


colors[colors.length]="yellow"; //相当于在后面又追加了一个元素。不覆盖前面的元素。具有可扩展性代码。good。
colors[colors.length]="brown"; //同上。不用修改就可以继续使用。

(4)转换数组为字符串

<script>
var colors=["red","blue","green"];

function w(a){document.write( a + "<br />");}

w(colors.join(" || "));

alert(colors.toString()); //输出整个数组为字符串,逗号隔开
alert(colors.valueOf());
alert(colors);

alert(colors.join(",")); //定义数组元素之间的分隔符
alert(colors.join("||"));

</script>

(5)堆栈操作:先进后出

push压入数组元素,
pop取数据,从最后的一个元素取。

(6)队列操作:先进先出

push压入数组元素,

shift时先进先出。

(7)排序操作

function w(a){document.write( a + "<br />");}

var values=[0,100,5,10,15];
values.sort(); //排序操作,从小到大
w(values);


values.reverse(); //反序
w(values);

结果:

0,10,100,15,5
15,10,5,100,0

note:感觉sort很诡异,根本不是大小排序。

-------------

查了下原型  arrayobj.sort(sortfunction)  

参数  

arrayObj
必选项。任意 Array 对象。


sortFunction
可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,
那么元素将按照 ASCII 字符顺序进行升序排列。


说明
sort 方法将 Array 对象进行适当的排序;
在执行过程中并不会创建新的 Array 对象。

如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:

负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。

------------

 

7.1 改进版:自己写比较的规则,用函数表示。

function w(a){document.write( a + "<br />");}


function compare2(value1, value2){ //从大到小排列

a=value1;
b=value2;


if( a < b ){
return 1;
} else if( a < b ){
return -1;
} else{
return 0;
}
}


var values=[0,100,5,-10,15];
values.sort(compare2); //排序操作,从小到大
w(values);

结果:100,15,5,0,-10

符合预期。

7.2 再搞一个按绝对值排序的,只需要将上面的红色部分替换即可。

a=Math.pow(value1,2);
b=Math.pow(value2,2);

结果:100,15,-10,5,0

符合预期。

(8)数组操作
连接
colors2=colors.concat("yellow",["red","black"]);

截取
colors=colors.slice(1,4); //截取从1到3,不取4,作为新的数组;

splice()
完整用法:splice(开始位置, 删除个数, 插入元素);

删除 splice(0,2)
插入 splice(2,0,"red","green")
替换 splice(2,1,"red","green")

refer

1.数学函数:http://fyb613.blog.163.com/blog/static/325460922009412102345449/

2.sort()方法:http://www.jb51.net/article/4168.htm

原文地址:https://www.cnblogs.com/dawnEve/p/js.html