数组
数组的定义
<script type="text/javascript" >
/*数组的定义*/
//隐式定义
var arr1 = [];
console.log(arr1);
var arr2 = [1,2,'a',true];
console.log(arr2);
//直接实例化
var arr3 = new Array(1,2,3);
console.log(arr3);
//定义数组并设置长度
var arr4 = new Array(5);
console.log();
</ script>
数组的操作
数组的下标从0开始
获取数组指定下标的值:(如果下标不存在,则undefined)
数组名[下标];
设置数组指定下标的值:(如果下标不存在,则自动扩容)
数组名[下标]=值;
获取数组的长度
数组名.length;设置数组的长度:
数组名.length =值;了解:
如果设置非整数型的下标,则会成为数组的属性,不计入数组的长度设置属性:
数组名.属性名 =值;数组名["属性名"]=值;获取属性:
数组名.属性名;数组名"属性名"
数组的遍历
1. for循环遍历
for (var index = 0; index<数组长度;index++ ) {
}
相当于Java中:
for(int index = 0; index<数组长度;index++ ) {
}
2.for. ..in循环
for ( var下标名in数组){
}
3. forEach循环
数组.forEach(function(element, index){
/ / element:元素
/ /index:下标});
/*数组的遍历*/
console.log(arr3);
console.log( "---for循环遍历----");
// for循环遍历
for(var i = 0; i < arr3. length; i++)
console.log("下标:"+ i + ",值: "+ arr3[i]);
//for. . .in
console.log("---for. . .in----");
for (var i in arr3)
console.log("下标:” +i + ",值:"+ arr3[i]);
//forEach
console.log( " ---forEach----" );
arr3.forEach(function( element,index)
console.log("下标:“ + index + ",值: "+ element)
- for -->不遍历属性
- foreach -->不遍历属性和索引中的undefined
- for in -->不遍历索引中的undefined
/*数组提供的方法*/
var arr5 = [ "a", "b", "c"];l / push
添加元素到最后
arr5[ arr5.length] = "d";
arr5.push( "e");
console.log( arr5);/ / indexOf
数组元素索引
console.log( arr5.indexOf( "a"));// 0
console.log( arr5.indexOf("t"));l/ -1,找不到返回-1/l join
数组转成字符串
console.log( arr5.join("-")); ll a,b,c,d ,e// split
字符串方法:将字符串转换成数组
var str = "1,2,3,4,5";
console.log( str.split(", "));
函数
函数的定义
1。函数声明语句
function函数名([参数列表]){
}
2.函数定义表达式
var变量名/函数名= function([参数列表]){
}
3.Function构造函数
var函数名= new Function([参数列表],函数体);
/*函数的定义*/
// 1.函数声明语句
function fn01(a,b) {
console.log( atb);
}
//2.函数定义表达式
var fn02 = function(a,b) {
console.log(a+b);
}
//3. Function构造函数
//不常用
函数的参数
定义函数时设置形参,调用函数时传递实参。
- 实参可以省略,则形参为undefinded
- 如果形参名相同,则以最后一个参数为准
- 可以设置参数的默认值
- .参数为值传递,传递副本;参数是是引用传递,则传递的是地址,操作的是同一个对象
函数的作用域
在js中,只有在函数中才作用域。
1. 在函数中,存在局部变量和全局变量
2.在函数中,如果声明变量时未使用var修饰符,则该变量是全局变量