1. String
1
|
String(s); //'s',不加new 就直接输出字符串
|
2. Number
1
|
Number(sss) //报错,Error: sss is not defined
|
3. Boolean
1
|
六个false值
|
除了对象(包括数组、函数)是复杂类型,其他数据类型都是基础类型
5. Object
1
|
Object(1); //Number{1},前加new 和不加new是一样的
|
6. Array
1. 用法
第一种用法:
1
|
let a = ['a','b']; //['a','b']
|
第二种用法:
1
|
let a = Array(3,3); //[3,3],length为2
|
数组的含义:
数组就是对象,是拥有特殊原型链的对象,有Array.prototype的就是数组,没有的就不是数组。
3. 伪数组
1
|
let obj = {
|
arguments是伪数组
4. 数组的API
-
forEach
1
2
3
4
5
6
7
8var a = ['a','b','c'];
a.forEach(function(x,y){
console.log(y); //y是key
console.log(x); //x是value
})
//0 a
//1 b
//2 c -
sort,这个API会改变原值!只有这一个API会改变原值
1
2
3
4
5
6
7
8
9
10var l = [2,3,1];
l.sort(); //[1,2,3],从小到大排序
l.sort(function(a,b){return a-b}) //[1,2,3],从小到大排序
l.sort(function(a,b){return b-a}) //[3,2,1],从大到小排序
//按成绩高到低排名
var students = ['小a','小b','小c'];
var scores = { 小a: 59, 小b: 99, 小c: 80 };
students.sort(function(x,y){return scores[y] - scores[x]}) // ["小b", "小c", "小a"]
-
join
1
2
3
4var a = [1,2,3];
a.join('xx'); //'1xx2xx3'
a.join(); //'1,2,3',默认是逗号 -
concat
1
2
3
4
5var a = [1,2,3];
var b = [3,4,5];
var c = a.concat(b); //'1,2,3,3,4,5'
var d = a.concat([]); //'1,2,3',d和a的值一样,但d和a是两个数组,所以concat可以用来深拷贝数组 -
map(映射)
1
2
3
4
5var a = [1,2,3];
a.map(function(value,key){
return value * 2;
}) //[2,4,6];
a.map(value => value * 2); //[2,4,6] -
filter(过滤器)
1
2
3
4
5
6
7
8
9
10
11
12
13var a = [1,2,3,4,5];
a.filter(function(value,key){
return value >= 3;
}) //[3,4,5]
a.filter(function(value,key){
return value % 2 === 0 ;
}) //返回偶数,[2,4]
a.filter(function(value,key){
return value % 2 === 0 ;
}).map(function(value){
return value * value;
}) //[4,16]; -
reduce
1
2
3
4
5
6var a = [1,2,3];
a.reduce(function(sum,n){
return sum + n ;
},0) //6,求和,0是初始值,第一次传给sum的就是0,sum是每次传进来的值,之后传给sum的是return里的值,n是遍历的数
a.reduce((sum,n) => sum + n ,0) //6,箭头函数的写法
map以用reduce表示:
1
|
a.reduce(function(arr,n){
|
filter也可用reduce表示:
1
|
a.reduce(function(arr,n){
|
-
splice
1
2
3array.splice(start)
array.splice(start, deleteCount)
array.splice(开始的位置, 删除的个数, 插入的对象1,插入的对象2, ...) -
slice
1
2
3array.slice() //保留完整数组
array.slice(4) //保留4到最后的数组
array.slice(4,8) //保留4到8以前的数组