JavaScript学习
【js中的数组】
1、数组的概念:是在内存中连续储存对个有序元素的结构
元素的顺序称为下标,通过下标查找对象元素。
2、数组的声明:
① 字面量声明:var arr1 = [];
js中,同一数组,可以储存多种不同的数据类型:
例如: var arr1 = [1,"2",true,{"name":"hahhah"},[1,2]]
② new关键字声明: var arr2 = new Arry(参数)
>>>参数可以为
a.为空:声明一个,没有指定长度的数组;
b.数组的length:声明一个指定长度的数组,但是数组的长度随时可变可追加;最大长度为0~(2^32-1);
c.数组默认的N个值: new Array(1,"2",ture);相当于[1,"2",ture]
3、数组中元素的读写/增删:
① 读写:通过下标来访问元素,例如arr[2];
② 增删:delete arr[n];删除数组的第N+1个值,但数组长度不变,对应位置值为Undefined
arr.push(值);数组最后增加一个值,相当于arr3[arr3.length] = 值;
arr.unshift(值);数组的第0位插入一个值,其余位数顺延;
arr.pop9();删除数组最后一位,与delete不同的是,pop执行后数组长度也会减少一个;相当于Arr3.length-1;
arr.shift(值);删除数组的第0位,长度也会减一;
4、数组中其他常用方法:
①join('分隔符');将数组用制定分隔符分隔,链接为字符串。参数为空时,默认用逗号分隔;
②concat();(原数组不被改变)将数组,与多个数组的值链接为新的数组;
[1,2].concat([3,4],[5,6])=[1,2,3,4,5,6]; 链接时,中括号至多拆一层;
[1,2].concat([1,2,[3,4]])=[1,2,1,2,[3,4]];多层中括号,以二维数组形式存在
③push():数组最后增加数;unshift():数组开始增加一个数【返回数组新的长度】
pop():删除数组最后一个;shift():删除数组第一个【返回被删除的值】
【调用上述方法,原数组均被改变】
④recerse(): 【原数组被改变】数组翻转,逆序排列。
⑤slice(begin,end):【原数组不会被改变】 截取数组中的某一部分,成为新数组
>>>传递一个参数:默认为begin index,当这个开始,截到最后一个;
>>>传递两个参数:截取从begin到end区间,左闭右开(包括begin,不含end)
>>>参数可以为负数,-1表示最后一个;
⑥sort(function):【原数组会被改变】对数组进行排序;
>>>不指定排序函数:按照数值的ascii码值进行排列;
>>>传入排序函数:默认两个参数a,b,如果返回值>0,则a>b;反之返回值<0,则a<b
var arr7 = [7,8,10,13,1,6,99]
arr7.sort(function(a,b){
return a-b; //b在前,a在后(升序排列)
//return b-a;//a在前,b在后(降序排列)
});
console.log(arr7);
⑦indexOf(value,index):返回数组中第一个value值对应的下标位置,若未找到,返回-1
lastIndexOf(value,index):返回最后一个value值对应的下标位置。
>>>若未指定index参数:默认在数组所有元素中查询;
若指定index参数:则从当前index开始,向后查询;
5、二维数组&稀疏数组(了解):
①稀疏数组:数组并不含有从0开始到length-1的所有所有索引(length值比实际元素个数多);
②二维数组:var arr = [[1,2],[3,4],[5,6]];//相当于三行两列的矩阵
取出二维数组元素: arr[行号][列号];//可使用嵌套循环遍历
6、引用数据类型&基本数据类型:
引用数据类型;(数组/对象)赋值时,是将原变量的地址,赋给新变量。两个变 量,实际上操作的是同一份数据,所以,修改其中一个变量,另一个跟着变化;
基本数据类型:赋值时,是将来变量的值,赋值给新的变量。两个变量,还属于不同的内存空间,修改其中一个,互不干扰。
【Boolean类】
var intrue = true; //单纯的变量
var inTrue1 = new Boolean(true);//一个Boolean类型的对象
Number类
- Number.MIN_VALUE 可表示的最小数
- Number.MAX_VALUE 可表示的最大数
- .toString():将数字转为字符串 相当于 num+""
- .toLocaleString():将数字按照本地格式的顺序转为字符串。一般,三个一组加逗号。
- .valueOf():返回Number对象的基本数字值
- .toFixed(n):将数字转为字符串,保留n位小数,四舍五入。
- .toPrecision(n):将数字格式化为指定长度,n=不含小食店的所有位数和
eg:
var num = 1; //单纯的变量
var num1 = new Number(2);//一个Numbor类型的对象
console.log(num1);
【字符串String类】
1、属性:str.length 返回字符串的长度;
2、方法:
.toLowerCase() 所有字符串转为小写;
.toUpperCase() 所有字符串转为大写;
.charAt(n) 截取字符串中第n个字符;
.indexOf("查询字串",index) 查询从index开始的,第一个字串的索引。没找到返回-1,同数组的indexOf()方法;
.substring(begin,end) 截取字串
>>>传递一个参数:默认为begin index,当这个开始,截到最后一个;
>>>传递两个参数:截取从begin到end区间,左闭右开(包括begin,不含end)
>>>参数可以为负数,-1表示最后一个;
.replace("old","new")将字符串中,第一个old,替换为new。
第一个参数可以为普通字符串,也可以为正则表达式(普通字符串将只匹配第一个,正则表达式则更具具体情况区分)
.split("") 将字符串,通过 指定分隔符 分为数组。 0