字符串方法
1 简单方法 (注意: 字符串方法不会改变自身)
-------------------------------------------------------------------------------------------
1 编码: escape('?!=()#%&');
2 解码: unescape( escape('?!=()#%&') );
3 长度: str.length
4 字符串转数组: str.split(",")
5 去空格: str.trim();
6 字母小写 -- str.toLowerCase();
7 字母大写 -- str.toUpperCase();
8 替换字符 -- str.replace("a", "b");
-------------------------------------------------------------------------------------------
2 常用方法
-------------------------------------------------------------------------------------------
1 根据索引返回对应的字符
1 str.charAt(i)
2 str[i]
3 str.charCodeAt(i)
2 查找一个字符串中是否存在某个字符
1 str.indexOf("X") 返回从左往右第一个字符的索引 -- 找不到返回 -1
2 str.lastIndexOf("X") 从右往左找
3 str.search('x') 等效于str.indexOf()
3 获取字符串指定区间的字符
1 var hh = str.slice(index1,index2);
2 var hh = str.substr(index);
3 var hh = str.substr(index, num);
4 var hh = str.substring(index);
5 var hh = str.substring(index1, index2);
-------------------------------------------------------------------------------------------
数组方法
1 会改变原数组的方法
-------------------------------------------------------------------------------------------
1 添加数组元素 -> 数组的开头或结尾添加1或多个数组元素
1 开头: arr.unshift(77)
2 结尾: arr.push(4,5,6)
2 删除数组元素 -> 删除开头或结尾的1个数组元素
1 开头: arr.shift()
2 结尾: arr.pop()
3 数组元素的 - 删除 - 插入 替换等操作 (替换用的少)
1 arr.splice(2) 删除 [index 开始 - 到后面的所有数组元素
2 arr.splice(1, 3) 删除 [index开始 以及往后的 2个数组元素 - 共 3个
3 arr.splice(1, 0, 6) 在索引1的位置 - 插入数组元素 6; 0 的位置可以控制在插入前是否删除元素
4 arr.splice(1, 3 , 7, 8, 9) 把索引 [1 - 3] 的数组元素 -- 替换为 7, 8, 9 (不确定, 用的少)
4 排列数组元素
1 arr.sort() -> 数组元素的ASCII码排序
2 arr.sort(function(a,b){ return a-b}) -> 数字从小到大排序
3 arr.sort(function(a,b){ return b-a}) -> 数字从大到小排序
4 arr.reverse() -> 数组元素的倒序排列
-------------------------------------------------------------------------------------------
2 不会改变元素组的方法
-------------------------------------------------------------------------------------------
1 数组转为字符串
1 arr.join("-") --> 不传默认逗号分隔 --> ""==没有分隔 --> "-"==以-来分隔
2 arr.toString()
2 其他数据转为真数组
1 var hh = Array.from(str / arr) -- 可将伪数组或字符串转为真数组
2 var hh = Array.of(1,2,3,"hh") -- 可将零散元素转为数组
3 遍历
1 数组遍历 -- forEach( (v,i,a)=>{} ) -- 可修改原数组无返回值
2 数组遍历 -- map( (v,i,a)=>{} ) -- 不可修改原数组有返回值
3 过滤数组 -- arr.filter( x => x>3 ) -- 返回需要的数组元素组成的新数组
4 遍历判断 -- arr.every(v => v>3) -- 遍历数组元素, 只要有一个不大于3, 返回值 == false
5 遍历判断 -- arr.some(v => v>3) -- 遍历数组元素, 只要有一个大于3, 返回值 == true
4 查找数组元素
1 arr.indexOf( "hh" ) -- 返回从左往右第一个 hh字符 的 index, 如没有返回 -1
2 arr.lastIndexOf( "hh" ) -- 返回从右往左第一个 hh字符 的 index, 如没有返回 -1
3 arr.includes(3, 5) -- 判断数组内是否存在3, 从索引 [5 开始查找; 返回布尔值; 参数2--为可选
5 判断变量是不是一个数组
1 Array.isArray( hh ) -- true / false (H5+, 支持IE9以上)
2 hh instanceof Array -- true / false
6 截取指定区间的数组元素
1 arr.slice( 2 ) -- 返回的区间 [2 +后面全部的数组元素
2 arr.slice(0, 2) -- 返回的区间 [0,2)
7 合并数组
1 arr.concat( arr1, arr2, arr3, 66 ) -- 合并3个数组以及一个数组元素
8 数组去重
1 let set = Array.from(new Set([1, 2, 2, 3]))
9 findIndex() 方法
1 作用: 传入一个测试条件, 返回符合条件的第一个数组元素的索引
2
-------------------------------------------------------------------------------------------
对象方法
1 创建对象的方法
-------------------------------------------------------------------------------------------
var obj = {};
var obj = new Object();
var obj = new Test('aaaa', 22, 'bbb');
var hh = Object.create(obj);
-------------------------------------------------------------------------------------------
2 JS 内置对象 -> 数字对象 Math
-------------------------------------------------------------------------------------------
1 Math.max(1,2,3) 返回最大值 - Math.max.apply([], arr) 可求数组最大值
2 Math.min(1,2,3) 返回最小值 -
3 Math.ceil(2.3); == 向上取整, 返回 3
4 Math.round(2.3); == 四舍五入取整, 返回3 'n.5 往大了取, 负值 -1.5 == 1'
5 Math.floor(2.6); == 向下取整, 想小的值取整, 返回 2
6 Math.abs(-8) 返回绝对值 - 会隐式转换
7 Math.random() 返回 [0-1) 范围内的随机小数
8 Math.PI; 返回圆周率
## 数字方法相关示例
1 得到俩个数之间的随机整数, 且包含着俩个整数
function getRandom(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; }
2 随机点名
1 var arr = ["小白", "小黑", "小明", "小绿", "小红"]
2 console.log(arr[getRandom(0, arr.length - 1)])
-------------------------------------------------------------------------------------------
3 JS 内置对象 -> 日期对象 Date
-------------------------------------------------------------------------------------------
1 var date = new Date() 获取系统当前时间的 Date 对象
2 var date = new Date('2018-10-1 8:8:8') 获取指定时间对象
3 var date = +new Date() 获取时间戳: 当前日期 距离 1970年1月1日 过了多少毫秒
4 Date.now() 也是获取时间戳
5 var date = +new Date('2018-10-1 8:8:8') 返回指定的时间的时间戳
## 相关操作
1 设置3天后的时间
let d = new Date()
d.setDate(d.getDate()+3);
2 提取 Date 实例对象中的时间属性
1 date.getFullYear() 年
2 date.getMonth()+1 月
3 date.getDate() 日
4 date.getDay() 星期几 '星期一 == 1 周日 == 0'
5 date.getHoures() 时
6 date.getMinutes() 分
7 date.getSeconds() 秒
-------------------------------------------------------------------------------------------
4 常用对象方法
-------------------------------------------------------------------------------------------
1 对象的遍历
for (var k in obj) {
console.log(k)
console.log(obj[k])
}
2 对象合并
let obj1 = {a:1} / let obj2 = {b:2} / let obj3 = {}
Object.assign(obj3, obj1, obj2)
console.log(obj3);
-------------------------------------------------------------------------------------------
5 对象扩展方法
-------------------------------------------------------------------------------------------
待完善... (LY -> Day15)
-------------------------------------------------------------------------------------------