整理了自己平常比较常用到的一些js的api~
数值类型api
- num.toFixed(index) 作用是将数值保留几位小数,index是你需要保留的小数部分 返回的值是一个处理好的字符串数值 index值大于小数总位数的时候会被补上0
- num.toString(进制) 将数值转换为字符串
- parseInt(num) 将num数值转换为整数值 num可以传一个字符串会默认转成数值类型
- parseFloat(x) 保留x的小数部分 保留第一个小数.后面的所有合法值 遇到不合法数值就返回已经保留的部分
javascript
parseFloat(''13.5元'') // 13.5
- Number.isNaN(x) 判断x是不是一个NaN 返回值是一个布尔值 如果可以转成数值类型就返回false 否则返回true
- isFinite(x) 判断x是不是一个有限的值返回布尔值 如果是一个有限数值就返回true 也可以用来判断是不是数值
scss
isFinite(Infinity) // false
isFinite('abc123') // false
ifFinite(NaN) // false
例子
javascript
// 计算数组中所有整数值之和
let arr = ['asdf',true,'11','22','13.23',33]
let sum = 0
for(const item of arr){
//判断item是不是一个合法数值并且是整数
if(isFinite(item) && typeof item !== 'boolean' && item % 1 ===0){
sum += item*1 //转成数值类型
}
}
字符串类型api
- str.charAt(index) 取str中的第index个字符
css
//字符串也可以遍历每一项 也可以通过下标形式取值
for(let i = 0;i<str.length; i++){
str.charAt(i)
str[i]
}
- str.charCodeAt() 转换字符串 将字符串转换为unicode编码
- String.fromCharCode(unicode) //将unicode编码转换为字符串 注意:此方法在String下面操作与上面api互转
- str.toLowerCase() 将大写字母转换为小写字幕 不需要传参数
- str.toUpperCase() 将所有小写字母转换为大写
- str.substring(indexStart,[,indexEnd]) 用于字符串截取 从字符串的indexStart下标位置开始截取,截取到indexEnd下标位置的字符串 返回值是截取到的新字符串 包含起始下标位置的字符串 但是不包含结束位置下标的字符串[indexStart,indexEnd) indexEnd不写默认截取到最后
rust
let str = '我是个人练习生'
str.substring(2,5) // 个人练 不包含第五
str.substring(5,2) // 会自动把小的值放前面 传字符串的值会默认返回全部 传两个一样的数值返回空值
- str.substr(indexStart,[,length]) 同样是字符串截取功能但是参数不同 indexStart 表示起点下标 length表示截取几位 length可以不传会返回后面全部 length为负数的时候返回空值
rust
str.substr(3,1) // 起始下标为3往后截取1位
- str.slice(indexStart,endIndex) 跟substring一样的参数
- str.split(str) 将字符串以 str 的格式进行切割,切割为一个数组 分隔符要字符串里面存在 否则返回一个完整的原数组 传空值会将字符串里的每个字符单独作为数组的每一项
python
let str = '我,是,个人,练习生'
console.log(str.split(',')) //['我', '是', '个人', '练习生']
- str.trim() 用于去除str首尾空格符号
- str.indexOf(x) 用于检索x在str字符串中所在的位置 返回值是一个下标数值 如果不存在就返回-1 可以利用此方法鉴别是否包含这个值 应用场景:敏感词过滤 indexOf默认情况下都是从第一位开始进行检索的,找到满足条件的就返回它的下标 第二个参数从第几位下标开始进行检索
- str.lastIndexOf() 跟 indexOf用法一样,区别:lastIndexOf从后往前走
数组api
- Array.isArray(x) 判断x是不是一个数组 返回一个布尔值
- Array.from(x) 将x转换为一个数组 前提是x必须是一个可迭代的数据 转不了的返回空数组
- arr.push(data) 在数组的最后一项添加一个data数据 返回新增后数组的长度
- arr.pop() 删除数组最后一项的数据 返回删除的那一项数据
- arr.unshift(data,[,data]) 数组前面添加一个或者多个data数据 返回值是添加后的数组长度
- arr.shift() 删除第一项数据 返回值是删除的那一项数据
- arr.concat(arr1,arr2,arr3...) 用于数组合并 返回新的一个数组不会改变原数组
- arr.flat(num) 将多维的arr数组降低num个维度
- arr.join(str) 将数组的每一项以str作为分隔符拼接成为一个新的字符串
- arr.reverse() 数组翻转 会改变原数组
- arr.slice(beginIndex,endIndex) 数组截取 从beginIndex截取到endIndex下标位置 返回新的数组
- arr.splice(startIndex,length,[newItem1...n])
perl
startIndex 从什么下标位置开始截取
length截取几位
newItem1 将截取完后的部分替换为newItem的值
返回截取后的原数组
- arr.forEach(callback,thisArg) callback(item,index,arr) item数组的每一项 index数组对应的下标
javascript
arr.forEach(function(item,index,arr){
console.log(this) //this指向arr2 不传的话this指向window
},arr2)
//自定义封装
function myForEach(arr,cb,thisArg){
let fn = thisArg
for(let index = 0; index < arr.length; index++){
const element = arr[index]
cb(element,index,arr)
}
}
myForEach(arr,function(a,b,c){
//值 索引 数组
console.log(a,b,c)
},arr2)
- arr.map() 返回的是一个新数组,数组的每一项是回调函数返回的值 一般用在对原数组进行一些操作
javascript
arr.map((item,index,arr)=>{
return item + '?' //给数组每一项的值后面加一个 ?
})
- arr.filter() 将数组的每一项都进行一次筛选 返回 回调函数return 返回为真的数据
javascript
arr.filter((item,index,arr)=>{
console.log(item)
return item <= 3 //返回满足条件数组中的每一项
})
- arr.reduce(callback,acc) 用于数组归并数组里的每一项值归并到acc上面 callback(acc,curr,index,arr) acc 初始值可以是任意的数据类型 curr 数组的每一项值 返回值为acc最终并归后的值
javascript
[5,4,3,2,1].reduce((acc,curr,index)=>{
// acc第一次执行的时候跟传递进来的acc是同一个值 下次acc就为上一个回调函数的返回值决定
return acc
},'acc')
- arr.some((item,index,arr),thisArg) 参数和foreach一样 用于检索arr数组的每一项值 只要有一项值满足 回调函数的返回值返回true 否则返回false
- arr.every() 参数跟some一样,必须所有元素都经过回调函数的处理返回值都为true 才会返回true
- arr.find() 会返回数组中满足回调函数返回值条件的第一个元素
- arr.findIndex() 会返回数组中满足回调函数返回值条件的第一个元素的下标
- arr.sort(callback) callback(a,b) a是数组下一项值 b是数组的当前值 方法会返回一个排序后数组 回调的函数的返回值是决定a和b两个元素是否交换位置 如果小于0就交换位置 大于0就不换位置 返回排序后得数组会改变原数组