JS 常用方法

常用方法
字符串相关 .repeat()

str.repeat(8) //把str重复8次 //返回重复后的字符串

.indexOf()
str.indexOf('a') //返回值为str字符串中首次出现'a'字符串的索引 //若没出现则返回-1

.search()
str.search(str1) //返回值为str字符串中首次出现str1字符串的索引(也可接收正则) //若没出现则返回-1

.toUpperCase() & .toLowerCase()
str.toUpperCase(str)&str.toLowerCase(str) //不改变原字符串 //返回值为改变大小写后的字符串

.trim()
str.trim() //去除str开头和结尾的空白字符 //返回值为操作后的字符串

.startsWith()
str.startsWith('a') //str字符串是否以'a'开头 //返回值为true || false

.includes()
数组共有,效果类似
str.includes('a'[, 2]) //str字符串位置2开始查找'a' //返回值为boolean

.split()
str.split('a') //在str中,以a为分割点,将str分割为数组 //返回值为分割后的数组

.replace()
str.replace('a','b') //将str中的'a'全部替换为'b' //返回值为替换后的字符串

.substring()
str.substring(startindex[,endindex]) //提取从下标startindex到endindex-1的字符串,不改变原字符串 //不接受负参 //省略endindex则提取至末尾 //返回值为包括 start 处的字符,但不包括 stop 处字符的子字符串

.substr()
ECMAscript 没有对该方法进行标准化,因此反对使用它
str.substr(startindex[,length]) //提取从下标startindex(包括)开始,长度为length的子串,不改变原字符串 //若startindex为负,则是从字符串末尾开始提取 //返回值为下标startindex(包括)开始,长度为length的子串

.slice()
相当于是.substr()和.substring()的优点集成版,建议使用
数组共有,效果类似
str.slice(startindex[,endindex]) //提取从下标startindex到endindex-1的字符串,不改变原字符串 //若startindex为负,则是从字符串末尾开始提取 //省略endindex则提取至末尾

.charCodeAt()
str.charCodeAt(index) //返回值为指定下标处元素的Unicode

数组相关 .pop() & .push()
arr.pop() //可以理解为出栈 //返回值为被出栈(删除)的元素 arr.push(item1,item2...) //可以理解为入栈 //返回值为push成功后arr的length

.shift() & .unshift()
arr.shift() //删除数组第一位(pop栈底的元素) //返回值为被删除的元素 arr.unshift(item1,item2...) //向数组头部添加元素(push栈底) //返回值为unshift成功后arr的length

.concat()
字符串共有,效果类似
arr.concat(arr1[,arr2,arr3...]) //连接多个数组,不改变原数组 //返回值为拼合后的数组

.sort()
//a和b代表对比大小的两项,若需要对比的是对象中的键,则可以用(a.key, b.key)的形式传入,然后返回的是以key大小排序的对象数组 arr.sort((a,b)=>{ return a-b; }) //升序排列 arr.sort((a,b)=>{ return b-a; }) //降序排列 //改变原数组 //返回值也为排序后的数组

.splice()
arr.splice(index,num[,item1,item2...]); //会改变原始数组 //arr中索引index起的num个元素被删除,并在删除处添加新元素item //返回值为被删除的元素

.reduce()
arr.reduce(callback[,initialValue]) callback:function(total,currentValue,index,arr) //arr = [1, 2, 3] //注意:若设定了initialValue,则index从0开始,首次的total和currentValue分别为initialValue和1 //若没有initialValue,currentValue(当前处理元素)会直接从索引1开始,首次的total和currentValue分别为index0和index1的元素 //简而言之是一个高端版for循环

.indexOf()
arr.indexOf('a') //返回值为arr数组中首次出现'a'项的索引 //若没出现则返回-1

.copyWithin()
arr.copyWithin(target[,startIndex,endIndex]) //以startIndex开始,endIndex-1结束的元素集合覆盖从target开始的本数组内的元素 //改变原数组 //返回值为覆盖后的原数组

·map()
可以用来提取对象数组中的某一个属性键值对的集合
objArr.map((curr)=>return curr.id)
arr.map(function(currentValue,index,arr)) //currentValue 数组当前值 //index 索引 //arr 数组本身 //对数组arr调用函数(或内置方法)处理 //返回值为处理后的数组(不改变原数组)

.filter()
arr.filter(callback) callback: function(value,index){ return 条件; } //筛选出符合条件的元素,重新组成一个数组 //返回值为重组的数组

.every()
arr.every(callback) callback:function(value,index){ return 条件; } //确认数组的元素是否全部符合条件 //返回值为boolean

.some()
arr.some(callback) callback:function(value,index){ return 条件; } //确认数组是否有任一元素符合条件 //返回值为boolean

.find()
arr.find(callback) callback:function(value,index,array){ return 条件; } //找出第一个符合条件的元素 //返回值为该元素

.findIndex()
arr.findIndex(callback) callback:function(value,index,array){ return 条件; } //找出第一个符合该条件的元素 //返回值为该元素的索引

.fill()
arr.fill(target[,startIndex,endIndex]) //在数组的startIndex到endIndex-1之间填充target //改变原数组 //返回值为填充后的数组

Array.from()
Array.from(item) //将伪数组转化为数组(有length的都可以,所以字符串也可以) //返回值为转化后的数组

Array.of()
Array.of(num) //创建length为num的数组 Array.of(item1,item2...) //创建包含这些元素的数组 //类比new Array()创建的空数组,避免了参数引起的重载问题 //返回值为创建的数组

函数相关 .bind()
function.bind(thisArg[,arg1,arg2...]) //thisArg:调用function时作为 this指向的对象 传给目标函数的值 //arg1:调用function时'预置'给目标函数的实参(即目标函数接收的原参数+'预置'的参数) //'预置'妙用,请看'bind巧妙实现连续执行函数add.md' //区别于call/apply:若arg传值为一对一,则正常传值;若arg传值为数组,则默认该数组内容整体传给arg1 //返回值为目标函数返回值

.call()
function.call(thisArg, arg1, arg2...) //thisArg:调用function时作为 this指向的对象 传给目标函数的值 //arg1:调用### 常用方法#### **字符串相关**##### .repeat()

str.repeat(8)
//把str重复8次
//返回重复后的字符串
##### .indexOf()

str.indexOf('a')
//返回值为str字符串中首次出现'a'字符串的索引
//若没出现则返回-1
##### .search()

str.search(str1)
//返回值为str字符串中首次出现str1字符串的索引(也可接收正则)
//若没出现则返回-1
##### .toUpperCase()&.toLowerCase()

str.toUpperCase(str) & str.toLowerCase(str)
//不改变原字符串
//返回值为改变大小写后的字符串
##### .trim()

str.trim()
//去除str开头和结尾的空白字符
//返回值为操作后的字符串
##### .startsWith()

str.startsWith('a')
//str字符串是否以'a'开头
//返回值为true || false
##### .includes()> 数组共有,效果类似

str.includes('a'[, 2])
//str字符串位置2开始查找'a'
//返回值为boolean
##### .split()

str.split('a')
//在str中,以a为分割点,将str分割为数组
//返回值为分割后的数组
##### .replace()

str.replace('a','b')
//将str中的'a'全部替换为'b'
//返回值为替换后的字符串
##### .substring()

str.substring(startindex[,endindex])
//提取从下标startindex到endindex-1的字符串,不改变原字符串
//不接受负参
//省略endindex则提取至末尾
//返回值为包括 start 处的字符,但不包括 stop 处字符的子字符串
##### .substr()> ECMAscript 没有对该方法进行标准化,因此反对使用它

str.substr(startindex[,length])
//提取从下标startindex(包括)开始,长度为length的子串,不改变原字符串
//若startindex为负,则是从字符串末尾开始提取
//返回值为下标startindex(包括)开始,长度为length的子串
##### .slice()> 相当于是.substr()和.substring()的优点集成版,建议使用 > > 数组共有,效果类似

str.slice(startindex[,endindex])
//提取从下标startindex到endindex-1的字符串,不改变原字符串
//若startindex为负,则是从字符串末尾开始提取
//省略endindex则提取至末尾
##### .charCodeAt()

str.charCodeAt(index)
//返回值为指定下标处元素的Unicode
#### 数组相关##### .pop()&.push()

arr.pop()
//可以理解为出栈
//返回值为被出栈(删除)的元素
arr.push(item1,item2...)
//可以理解为入栈
//返回值为push成功后arr的length
##### .shift()&.unshift()

arr.shift()
//删除数组第一位(pop栈底的元素)
//返回值为被删除的元素
arr.unshift(item1,item2...)
//向数组头部添加元素(push栈底)
//返回值为unshift成功后arr的length
##### .concat()> 字符串共有,效果类似

arr.concat(arr1[,arr2,arr3...])
//连接多个数组,不改变原数组
//返回值为拼合后的数组
##### .sort()

//a和b代表对比大小的两项,若需要对比的是对象中的键,则可以用(a.key, b.key)的形式传入,然后返回的是以key大小排序的对象数组
arr.sort((a,b)=>{
return a-b;

})
//升序排列
arr.sort((a,b)=>{
return b-a;

})
//降序排列
//改变原数组
//返回值也为排序后的数组
##### .splice()

arr.splice(index,num[,item1,item2...]);
//会改变原始数组
//arr中索引index起的num个元素被删除,并在删除处添加新元素item
//返回值为被删除的元素
##### .reduce()

arr.reduce(callback[,initialValue])
callback:function(total,currentValue,index,arr)
//arr = [1, 2, 3]
//注意:若设定了initialValue,则index从0开始,首次的total和currentValue分别为initialValue和1
//若没有initialValue,currentValue(当前处理元素)会直接从索引1开始,首次的total和currentValue分别为index0和index1的元素
//简而言之是一个高端版for循环
##### .indexOf()

arr.indexOf('a')
//返回值为arr数组中首次出现'a'项的索引
//若没出现则返回-1
##### .copyWithin()

arr.copyWithin(target[,startIndex,endIndex])
//以startIndex开始,endIndex-1结束的元素集合覆盖从target开始的本数组内的元素
//改变原数组
//返回值为覆盖后的原数组
##### ·map()> 可以用来提取对象数组中的某一个属性键值对的集合 > > objArr.map((curr)=>return curr.id)

arr.map(function(currentValue,index,arr))
//currentValue 数组当前值
//index 索引
//arr 数组本身
//对数组arr调用函数(或内置方法)处理
//返回值为处理后的数组(不改变原数组)
##### .filter()

arr.filter(callback)
callback: function(value,index){
return 条件;

}
//筛选出符合条件的元素,重新组成一个数组
//返回值为重组的数组
##### .every()

arr.every(callback)
callback:function(value,index){
return 条件;

}
//确认数组的元素是否全部符合条件
//返回值为boolean
##### .some()

arr.some(callback)
callback:function(value,index){
return 条件;

}
//确认数组是否有任一元素符合条件
//返回值为boolean
##### .find()

arr.find(callback)
callback:function(value,index,array){
return 条件;

}
//找出第一个符合条件的元素
//返回值为该元素
##### .findIndex()

arr.findIndex(callback)
callback:function(value,index,array){
return 条件;

}
//找出第一个符合该条件的元素
//返回值为该元素的索引
##### .fill()

arr.fill(target[,startIndex,endIndex])
//在数组的startIndex到endIndex-1之间填充target
//改变原数组
//返回值为填充后的数组
##### Array.from()

Array.from(item)
//将伪数组转化为数组(有length的都可以,所以字符串也可以)
//返回值为转化后的数组
##### Array.of()

Array.of(num)
//创建length为num的数组
Array.of(item1,item2...)
//创建包含这些元素的数组
//类比new Array()创建的空数组,避免了参数引起的重载问题
//返回值为创建的数组
#### 函数相关##### .bind()

function.bind(thisArg[,arg1,arg2...])
//thisArg:调用function时作为 this指向的对象 传给目标函数的值
//arg1:调用function时'预置'给目标函数的实参(即目标函数接收的原参数+'预置'的参数)
//'预置'妙用,请看'bind巧妙实现连续执行函数add.md'
//区别于call/apply:若arg传值为一对一,则正常传值;若arg传值为数组,则默认该数组内容整体传给arg1
//返回值为目标函数返回值
##### .call()

function.call(thisArg, arg1, arg2...)
//thisArg:调用function时作为 this指向的对象 传给目标函数的值
//arg1:调用function时传给目标函数的实参
//区别于bind/apply:逗号分隔形参,一对一传值
//返回值为目标函数返回值
##### .apply()

function.appky(thisArg[,[arg1, arg2...]])
//thisArg:调用function时作为 this指向的对象 传给目标函数的值
//arg1:调用function时传给目标函数的实参
//区别于bind/call:以数组的形式,数组元素一对一传值
//返回值为目标函数返回值
#### 对象相关##### Object.assign()

newObj = Object.assign(obj1[,obj2...])
//将obj1,obj2...中可枚举的键值对复制newObj中
##### Object.keys()

Object.keys(obj)
//返回值为obj中所有可枚举属性(键)的集合数组
##### Object.values()

Object.values(obj)
//返回值为obj中所有可枚举属性(键)对应值的集合数组
#### 数值处理##### parseInt(num)

parseInt(.45)
//0
//只保留整数部分
##### Math.ceil(num)

Math.ceil(.45)
//1
//向上取整
##### Math.floor(num)

Math.floor(.55)
//0
//向下取整
##### Math.round(num)

Math.round(.55)
//1
//四舍五入
##### Math.max(num1,num2...)

Math.max(1,3,2,4)
//4
//不接受数组
//选取最大值
#### 其他##### eval()

eval(string)
//执行string内的表达式或js语句
## 常用属性#### 样式##### ·user-select(c3)

//user-select:none; 禁止选中(文本等)
//user-select:text; 仅禁止选中文本
#### input##### ·readonly


//readonly="value" 控制输入框是否为只读状态
##### ·accept


//仅允许上传png和jpg格式的文件

//仅允许上传image/vedio/audio种类下的文件
? function时传给目标函数的实参 //区别于bind/apply:逗号分隔形参,一对一传值 //返回值为目标函数返回值

.apply()
function.appky(thisArg[,[arg1, arg2...]]) //thisArg:调用function时作为 this指向的对象 传给目标函数的值 //arg1:调用function时传给目标函数的实参 //区别于bind/call:以数组的形式,数组元素一对一传值 //返回值为目标函数返回值

对象相关 Object.assign()
newObj = Object.assign(obj1[,obj2...]) //将obj1,obj2...中可枚举的键值对复制newObj中

Object.keys()
Object.keys(obj) //返回值为obj中所有可枚举属性(键)的集合数组

Object.values()
Object.values(obj) //返回值为obj中所有可枚举属性(键)对应值的集合数组

数值处理 parseInt(num)
parseInt(.45) //0 //只保留整数部分

Math.ceil(num)
Math.ceil(.45) //1 //向上取整

Math.floor(num)
Math.floor(.55) //0 //向下取整

Math.round(num)
Math.round(.55) //1 //四舍五入

Math.max(num1,num2...)
Math.max(1,3,2,4) //4 //不接受数组 //选取最大值

其他 eval()
eval(string) //执行string内的表达式或js语句

常用属性 样式 ·user-select(c3)
//user-select:none; 禁止选中(文本等) //user-select:text; 仅禁止选中文本

input ·readonly
//readonly="value"控制输入框是否为只读状态

·accept
//仅允许上传png和jpg格式的文件 //仅允许上传image/vedio/audio种类下的文件

【JS 常用方法】?

    推荐阅读