数组
1. 增加删除方法
push:将元素添加进数组最后一项,
- eg:arr.push(“111”)—-意为:将数组’111’增加到数组最后一项
pop:将数组中最后一项删除,返回删除后数组的最后一项
- eg:var arr=[134,345,344]; arr.pop()
unshift:往数组中第一项之前添加元素,返回添加之后的数组长度
- eg:var arr=[134,345,344]; arr.unshift(778)===4;
shift:将数组第一项从数组中删除
- eg:var arr=[134,345,344]; arr.shift()
splice:往数组中某个位置删除或者插入
arr.splice(index,number,element1,elementX)
—-index:要修改的位置下标 ; ——number:要删除的元素数量,如果没有写该参数,则表示将数组中所有元素删除 ; ——element1:表示添加到数组中的元素- splice参数中,
- 1、如果number跟添加到数组中的元素数量(elements)不对应,那么就表示是要用该元素将那两位元素替换;
- 2、如果第三个参数没写,表明是要将数组中的一项或者多项元素从数组中删除(返回值为以数组形式的删除元素),
- 3、如果number为0,则表示不从数组中删除元素
eg:
1 | var arr = [12,23,244,56,45]; arr.splice(2,1) //从arr数组中删除元素'244' |
2. 求数组的长度
- length:可以获得数组或者伪数组的元素个数
eg:
1 | var arr=[1,3,4,5]; console.log(arr.length) //4 |
3. 数组转换成字符串
第一种:
- toString() 它以列表的形式输出这些字符串
- 这种方法是会将调用方法的数组对象全部转化成字符串
1
var arr =[13,23,557,67]; console.log(arr.toString());// 13,23,557,67(字符串),当调用该方法的对象不是Array,就会出现错误
第二种
join()
- 这个方法如果不传参数就代表按默认方式切割转化
1
var arr = [12,34,45,35,23]; console.log(arr.join()); // 12,34,45,35,23(字符串类型),默认以逗号切割
- 如果传入参数,就代表以传入的符号切割
1
2var arr = [12,56,34,34,234];console.log(arr.join("") //这个就是告诉浏览器用空字符串切割; //12563434234;
var arr = [23,78,78,78,89]; console.log(arr.join("-")) //这个就是告诉浏览器以‘-’切割数组 ; // 23-78-78-78-89
4. 字符串转换成数组的方法
第一种:
- split() 可以将字符串按照指定字符串切割,返回数组
- 优点:用法方便
- 缺点:需要转化的字符串有可切割的字符
1
var str = "233,34,45,34,34"; console.log(str.split(","); // [233,34,45,34,34] //如果split方法内不传参数,那么默认从头到尾当做一个整体切割,返回的还是一个数组
- 第二种:
暂不知道,之后知道再做补充
5. 对象与数组与JSON格式互相转换
JSON全称为
JavaScript Object Native
是一种轻量级的字符串类型的特殊格式的文本存储格式。
数组转化成JSON格式(Array ==> JSON)
JSON.stringify(arr);
1
2
3
4
5
6
7var arr= [1,2,3, { a : 1 }]; console.log(JSON.stringify(arr));// '[1,2,3,{"a":1}]'
```
- JSON格式转换成数组(JSON ==> Array)
- JSON.parse(arr);
```javascript
var jsonStr = '[{"name":"a"},{"name":"b"}]';console.log(JSON.parse(jsonStr)); //[0:{name: "a"},1:{name: "b"}]
字符串常用方法
1. 字符串长度
- str.length
2. 选取字符串中指定位置的字符
str.substring(from,to)
subString
有两个参数。from表示,你要从哪里往后选取,为字符串的下标; to表示,你要截取到哪个下标位置,如果第二个参数没传,那么默认选取到该字符最后1
2
3var str = "墨上颜如玉,公子世无双";console.log(str.substring(6));//'公子世无双';
var str = "The quick brown fox jumped over the lazy yellow dog";console.log(str.substring(2,6)); // 'e qu' ;//substring(2,6)表明从第2个字符开始往后截取,截取到第6个字符;
3.判断类型
valueOf 返回指定对象的原始值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32var k = {};console.log(k.valueOf()); // Object {}
var m = [12,4,56,35]; console.log(m.valueOf()); [12,4,56,35]
var x = function(){console.log('lalala')};x.valueOf();
// 返回 function (){console.log('lalala')}
```
- **toString** 返回表示可以表示指定对象的字符串
```javascript
var k={} ;console.log(k.toString()); [object object];
var x = [1,2,3];console.log(x.toString()); // "1,2,3";
```
- 上面两种判断数据类型判断简单数据类型还行,但是判断复杂数据类型就不行了
- **instanceof** --- A instanceof B 意为:A的原型链上是否存在B构造函数的prototype表示的对象
```javascript
var a = "iamstring.";
var b = 222;
var c= [1,2,3];
var d = new Date();
var e = function(){alert(111);};
var f = function(){this.name="22";};
console.log(c instanceof Array) //---------------> true
console.log(d instanceof Date)
console.log(f instanceof Function) //------------> true
console.log(f instanceof function) //------------> falseconstructor 每一个对象都有一个构造器指向它的构造函数,这种判断数据类型的方式是比较稳妥的,但是当继承的时候,容易出错。
1
2
3
4
5
6var c= [1,2,3];
var d = new Date();
var e = function(){alert(111);};
console.log(c.constructor === Array) //----------> true
console.log(d.constructor === Date) //-----------> true
console.log(e.constructor === Function) //-------> true
评论加载中