变量与函数声明同名a,预解析后,函数优先,如果下面给a赋值,那么
内置对象
//求一堆数中的最大值:
Math.max(一堆数);
//求一个数的绝对值 正数
Math.abs(x) ;
//得到当前时间的日期对象
var date = new Date();
-
获取从1970年1月1日到现在的总毫秒数,常说的时间戳
var date = new Date(); console.log(date.valueOf()); console.log(date.getTime()); console.log(1*date); console.log(Date.now());
Array
对数组元素操作:
- push 从数组后面推入一个元素或多个元素:
var arr = [1,2,3];
// 返回:修改后数组的长度
arr.push(4,5,6);
- pop 删除数组最后一个元素
// 数组的pop方法用于将数组的最后一个元素移除
var arr = [1,2,3];
// 返回 被删除的元素;
arr.pop();
-
unshift 从数组前面添加一个或多个元素
var arr = [1,2,3]; // 返回:修改后数组的长度 arr.unshift(4,5,6);
-
shift 用于将数组的第一个元素移除
// 数组的shift方法用于将数组的第一个元素移除
var arr = [1,2,3];
// 返回 被删除的元素;
arr.shift();
-
splice:可进行数组任何位置的增删改
// 数组的splice方法用于从数组的指定位置移除、添加、替换元素 var arr = ['a','b','c','d','e']; //------------------------------------------------- // 对原数组操作 // 作用:从索引3开始移除,总共移除1个元素 , // 返回 被移除元素组成的数组 arr.splice(3,1); console.log(arr); //---------------------------------------------------- // 在c后面添加7和8两个元素 // 作用:从索引3开始添加,移除0个元素,把7,8加入; // 返回:一个空数组 // 操作原数组; arr.splice(3,0,7,8); //----------------------------------------------------- // 作用:从索引1开始替换,总共替换1个,用0替换 ; // 返回:被替换元素组成的数组(空数组) arr.splice(1,1,0); console.log(arr);
与字符串互转
- join 用于将数组中的多元素以指定分隔符连接成一个字符串
var arr = ['刘备','关羽','张飞'];
var str = arr.join('|');
console.log(str); // 刘备|关羽|张飞
- split 字符串的方法:转数字,后面为分隔的字符
// 这个方法用于将一个字符串以指定的符号分割成数组
var str = '刘备|关羽|张飞';
var arr = str.split('|');
console.log(arr);
查找元素
- indexOf:根据元素查找索引(位置),如果这个元素在数组中,返回索引,否则返回**-1**,找元素在不在数组内部,
- 场景:可以用于查找需要的元素,如果不等于-1,就说明这个数组里有要找的东西(查询是否有敏感字,有就和谐成**)
var arr = [10,20,30]
console.log(arr.indexOf(30)); // 2
console.log(arr.indexOf(40)); // -1
- findIndex方法用于查找满足条件的第一个元素的索引,如果没有,则返回-1
var arr = [10, 20, 30];
var res1 = arr.findIndex(function (item) {
return item >= 20;//item 回调函数,代表每一次遍历的数据,,return后面是判断条件
});
// 返回 满足条件的第一个元素的的索引(下标),若没有,返回-1
console.log(res1);
var res2 = arr.findIndex(function (item) {
return item >= 50;
});
// -1
console.log(res2);
遍历数组专用循环!!!
-
for循环:JS基础语法;[!!!]
-
forEach循环:遍历数组;!!!
// 数组的forEach方法用于遍历数组 var arr_1 = [10,20,30,40,50]; 参数:函数(函数) //item:每个数据;index:下标;arr:当前遍历的数组 // 对本数组操作,没有返回值; arr_1.forEach(function(item,index,arr){ console.log(item,index); });
-
filter 过滤,筛选出数组中满足条件的数组,返回是一个新的数组;
// 数组的filter方法用于将数组中满足条件的元素筛选出来
// 筛选出数组中 小于 2000 的数据
var arr_1 = [1500,1800,2200,300,2600,800];
var res = arr_1.filter(function(item,index,arr){
return item < 2000;
});
// fitler方法的的参数要求是一个函数,这个函数接收2个参数:item是数组中的每个元素,index是item对应的索引,arr代表当前的数组
- 数组和伪数组的核心区别:
拼接与截取
- concat 接收数组,不改变原数组,创建新数组返回
// 数组的concat方法的作用是把多个数组合并成一个新的数组
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = [7,8,9];
var res = arr1.concat(arr2,arr3);
console.log(res);
// 复制一个数组
var arr_1 = arr.concat();
- slice 截取数组:不对原数组操作,返回的是新的数组;
//slice:
//作用:截取数组;
var arr = ['a','b','c','d','e'];
// 表示 从下标1(包括),截取到下表为4(不包括),
var res = arr.slice(1, 4);
// 如果不给第二个参数,默认就是把从start开始,到length结束的所有的元素截取
var arr_1 = arr_2.slice(1);
// 复制数组:如果省略两个参数,start默认是0,end默认是length
var arr_1 = arr_2.slice();
复制数组
1.for循环复制
2.forEach数组遍历
//arr:可选参数
var new_arr = [];
arr.forEach(function(item,index){
new_arr.push(item);
});
new_arr[0]="abc";
console.log(new_arr,arr);
3.filter 满足过滤条件的元素,组成个新数组返回;
var new_arr = arr.filter(function(item,index,arr){
return arr.indexOf(item)!=-1;
});
new_arr[0] = "abc";
console.log(new_arr,arr);
4.拼接和截取
参数:不传入
返回:新数组(和arr一样)
var new_arr = arr.concat();
new_arr[0] = '';
//---------------
参数:不传入
返回:全部截取,新数组和arr一样
var new_arr = arr.slice();
new_arr[0] = "--------------------++--------";
console.log(new_arr,arr);
string不可变性
//内存栈:
//数字会被干掉
var num = 10;
num = 20;
//对于字符串而言,字符串不会被干掉,如果替换会使原来的字符串处于内存中的游离状态;
var num = "abc";
num = "cba";
//所以尽量避免使用大量的字符串的拼接;
//前端性能优化
//拼接字符串
str = 'aaaa'
可以用str.concat('-----','aaaa')//拼接
//截取字符串
//-------------------------
//substring
//作用:截取字符串
//参数:第一个参数:截取开始的下标(包括);第二个参数:截取结束的下标(不包括)
//返回:截取出来的字符串
var res = str.substring(0,3);//从0开始,3结束(不包括3)
console.log(str,res);
//---------------------------
//substr
//作用:截取字符串
//参数:第一个参数开始下标.第二个参数,截取的个数;
//返回:被截取新字符串,没有对原字符串修改;
var res = str.substr(2,3);
console.log(res);
//------------------------
//slice
//作用:截取字符串;
//参数:第一个参数:截取开始的下标(包括);第二个参数;截取结束的下标(不包括)
//返回:截取出来的字符串
var res = str.slice(0,3);
console.log(str,res);
//特别:参数可以设置负数,遇见负数,内部(负数+字符串的长度--->值 下标)
总结
-
math
- random:随机条;随机渐变色;
- floor:向下取整;
- ceil:向上取整;
- round:四舍五入;
- abs:绝对值(没有再取整)
-
Date:
-
获取时间戳
- 唯一的ID:身份证(唯一) 时间戳*随机数(前端模拟数据);
-
比较时间字符串大小:
-
-
Array:
-
push-pop-unshift-shif:从后添加-从后删-从前添加-从前删
-
splice!!!
-
与字符串互转;
-
arr.indexOf(备查的元素):验证元素是否在数组中;
- 有:返回钙元素在数组中的下标;
- 没有:-1;
-
遍历:
-
for
-
forEach
-
filter 筛选
-
-
复制:需要把数组复制;
-
-
字符串:
- indexOf