讲讲JavaScript中的API

整理了自己平常比较常用到的一些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就不换位置 返回排序后得数组会改变原数组
相关推荐
Мартин.2 小时前
[Meachines] [Easy] Sea WonderCMS-XSS-RCE+System Monitor 命令注入
前端·xss
昨天;明天。今天。3 小时前
案例-表白墙简单实现
前端·javascript·css
数云界3 小时前
如何在 DAX 中计算多个周期的移动平均线
java·服务器·前端
风清扬_jd3 小时前
Chromium 如何定义一个chrome.settingsPrivate接口给前端调用c++
前端·c++·chrome
安冬的码畜日常3 小时前
【玩转 JS 函数式编程_006】2.2 小试牛刀:用函数式编程(FP)实现事件只触发一次
开发语言·前端·javascript·函数式编程·tdd·fp·jasmine
ChinaDragonDreamer3 小时前
Vite:为什么选 Vite
前端
小御姐@stella3 小时前
Vue 之组件插槽Slot用法(组件间通信一种方式)
前端·javascript·vue.js
GISer_Jing3 小时前
【React】增量传输与渲染
前端·javascript·面试
GISer_Jing3 小时前
WebGL在低配置电脑的应用
javascript
eHackyd3 小时前
前端知识汇总(持续更新)
前端