2.4 Array(数组)?对象
数组对象是使用单独的变量名来存储一系列的值。
2.4.1 数组的创建方式
1. new Array([参数]);
参数---一个数字--数组的存储空间
var arr1 = new Array(); // 没有指定存储空间的空数组
//alert(arr1.length);
var arr1 = new Array(); //装一个元素以后,有1个存储空间
arr1[0] = 100;
//alert(arr1.length); //1
var arr2 = new Array(4); // 指定4个存储空间的空数组
//alert(arr2.length);
2. new Array(value1,value2.....);
var myCars=new Array("Saab","Volvo","BMW");
3. ?[value1,value2....]
var myCars = ["Saab", "Volvo", "BMW"];
2.4.2数组赋值
1.先创建后赋值---需要下标【从0开始】
var test1 = new Array(2);
test1[0] = "zhangsan";
test1[1] = "lisi";
test1[2] = "wangwu";
alert(test1.length); //3
注意:new Array(4)指定数组空间情况
?1.赋值的时候可以超出指定的数据空间大小
?2.数据的个数在指定的数据空间大小内(包括等于),length属性是指定的数据空间大小
?3. 如果超过就表示数组中元素的个数
2.?定义加赋值
var myCars = new Array("Saab", "Volvo", "BMW");
var myCars = ["Saab", "Volvo", "BMW"];
下列创建数据赋值错误的是(1,2)
var myCars1 = new Array("Saab", "Volvo", "BMW");
var myCars2 = ["Saab", "Volvo", "BMW"];
var myCars3 = new Array()["Saab", "Volvo", "BMW"];
var myCars4 = new Array(3)["Saab", "Volvo", "BMW"];
2.4.3?数组取值---数组名称[小标]
2.4.4数组的length属性
length属性---数组元素的个数
new Array(4)指定数组空间的情况,数据的个数在指定的数据空间大小内(包括等于),length属性是指定的数据空间大小
如果超过就表示数组中元素的个数。
var test1=new Array(4);
test1[0]="zhangsan";
test1[1]="lisisi";
alert(test1.length);
上面的代码的执行结果是(d)
A 0 B 2 C 3 D 4
2.4.5.数组的遍历---循环
var myCars = ["Saab", "Volvo", "BMW"];
for (var i = 0; i < myCars.length; i++) {
alert(myCars[i]);
}
var myCars = ["Saab", "Volvo", "BMW"];
for (var index in myCars) {
alert(myCars[index]);
}
2.4.6.数组的常用方法
1. concat()??? 合并数组
var myCars = ["Saab", "Volvo", "BMW"];
var test1 = ["zhangsan", "lisisi"];
var newarray = myCars.concat(test1);
alert(newarray.length); //5
2. forEach()?? 数组每个元素都执行一次回调函数。
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
arr.forEach(function (element) {
alert(element);
})
3.includes()?? 判断一个数组是否包含一个指定的值
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
alert(arr.includes('xiaoming')); //true
4. indexOf()? 搜索数组中的元素,并返回它所在的位置
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
alert(arr.indexOf('xiaoming')); //3
5. lastIndexOf()??? 搜索数组中的元素,并返回它最后出现的位置
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
alert(arr.reverse()); //xiaoming,wangwu,lisi,zhangsan
6. join()? 把数组的所有元素放入一个字符串。
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
var str = arr.join(";");
alert(str); //zhangsan;lisi;wangwu;xiaoming 转化为字符串
7. push() 向数组的末尾添加一个或更多元素,并返回新的长度
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
arr.push('xiaohong')
alert(arr); //zhangsan,lisi,wangwu,xiaoming,xiaohong
alert(arr.length); //5
8. unshift()??? 向数组的开头添加一个或更多元素,并返回新的长度
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
arr.unshift('xiaohong')
alert(arr); //xiaohong,zhangsan,lisi,wangwu,xiaoming
alert(arr.length); //5
9. shift() 删除并返回数组的第一个元素
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
alert(arr.shift()); //zhangsan
10. pop()?????? 删除数组的最后一个元素并返回删除的元素
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
alert(arr.pop()); //xiaoming
11. reverse()? 反转数组的元素顺序
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
alert(arr.reverse()); //xiaoming,wangwu,lisi,zhangsan
或者:
arr.reverse();
arr.forEach(function (element) {
alert(element);
})
12. slice(开始下标,结束下标)??? 选取数组的一部分,并返回一个新数组。
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
var test = arr.slice(0, 2);
test.forEach(function (element) {
alert(element);
}) //从0开始,到2结束,不包括结尾
13. sort()?????? 对数组的元素进行排序
var numarr = [123, 234, 22, 1224];
numarr.sort(function (a, b) { return a - b; });//升序
numarr.forEach(function (element) {
alert(element);
})
var numarr = [123, 234, 22, 1224];
numarr.sort(function (a, b) { return b - a; });//降序
numarr.forEach(function (element) {
alert(element);
})
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
arr.sort(); //升序 首字母1排序
arr.forEach(function (element) {
alert(element);
})
14. toString() 把数组转换为字符串,并返回结果
var arr = ['zhangsan', 'lisi', 'wangwu', 'xiaoming'];
var str = arr.toString();
alert(str); //zhangsan,lisi,wangwu,xiaoming
2.5 Boolean(布尔)?对象
2.5.1.创建方式(2种)
var boo1 = false;
alert(typeof boo1); // 类型不同:boolean型
var boo2 = new Boolean(true / false);
alert(typeof boo2); //类型不同:object型
2.5.2.Boolean 对象方法:
toString()????? 把布尔值转换为字符串,并返回结果。
var str1 = boo1.toString();
alert(typeof str1); //string
valueOf()?????? 返回 Boolean 对象的原始值
var boo3 = boo2.valueOf();
alert(typeof boo3); //boolean
2.5.3.注意事项
1.数字可以充当判断值 0==false? 非0数字---true
var num1 = 0; false
if (num1) {
} else {
alert(false);
}
var num2 = 10;
if (num2) { true
alert(true)
} else {
alert(false);
}
2.字符串充当判断值?????? 空字符串==false? 非空字符串==true
var str1 = '';
if (str1) { false
alert(true);
} else {
alert(false);
}
var str2 = "hello";
if (str2) { true
alert(true);
}
3. null充当判断?????????? null==false???? !null==true
var test1 = null;
if (test1) { false
alert(true);
} else {
alert(false);
}
var test2 = !null;
if (test2) { true
alert(true);
} else {
alert(false);
}
2.6Math(算数)?对象
调用一些数学运算相关的属性和方法
不需要创建对象, Math就是对象
2.6.1? Math对象 属性:
1. E 返回算术常量 e,即自然对数的底数(约等于2.718)。自然常数,为数学中一个常数,是一个无限不循环小数
alert(Math.E); //2.718281828459045
2. PI 返回圆周率(约等于3.14159)。
alert(Math.PI); //3.141592653589793
2.6.2 Math对象 方法:
1. ?.max(x,y,z,...,n)
.max(x,y,z,...,n) 返回 x,y,z,...,n 中的最高值。
alert(Math.max(12, 3, 5, 123)); //123
2. ?.min(x,y,z,...,n)
.min(x,y,z,...,n) 返回 x,y,z,...,n中的最低值。/min(x,y,z,...,n) 返回 x,y,z,...,n中的最低值。
alert(Math.min(12, 3, 5, 123)); //3
3. round(x)??? 四舍五入
正数--round(x) 四舍五入。
负数--round(x)无限接近的整数
alert(Math.round(12.3)); // 12
alert(Math.round(-12.2)); //-12
alert(Math.round(-12.8)); //-13
2.7 RegExp?对象
正则表达式描述了字符的模式对象,实际上就是一个用于查找/匹配字符串的规则
正则表达匹配字符
1.?RegExp对象
2.String中的match可以检索正则表达?--?不常用
|