js 常用的方法整理。

找索引

(1)Find:返回元素,找不到放回underfinded;

const num = [1,3,5,7,9]
num.find(item=>item>6) // 7

(2)indexof:返回索引,找不到返回-1,只能查找数组中指定的值

 num.indexof(7)   // 3

(3)FindIndex:返回索引,找不到返回-1,可以通过回调函数查找对象数组。

 num.findIndex(item=>item>6) // 3

(4)includes:返回布尔值

 num.includes(3) // true

判断数据类型

typeof:不能准确判断null、数组、对象类型,对于函数和日期会返回"object"

console.log(typeof "John"); // 输出: string
console.log(typeof 6);      // 输出: number
console.log(typeof true);   // 输出: boolean
console.log(typeof undefined); // 输出: undefined
console.log(typeof function() {}); // 输出: function
console.log(typeof {});     // 输出: object
console.log(typeof []);     // 输出: object (注意:在JavaScript中,数组也被视为对象)

 Object.prototype.toString.call():可以精准判断数据类型,是最常用的方法。

console.log(Object.prototype.toString.call("John")); // 输出: [object String]
console.log(Object.prototype.toString.call(6));      // 输出: [object Number]
console.log(Object.prototype.toString.call(true));   // 输出: [object Boolean]
console.log(Object.prototype.toString.call(undefined)); // 输出: [object Undefined]
console.log(Object.prototype.toString.call(function() {})); // 输出: [object Function]
console.log(Object.prototype.toString.call({}));     // 输出: [object Object]
console.log(Object.prototype.toString.call([]));     // 输出: [object Array]

Instanceof:一般用于判断一个实例是否是某个构造函数的实例

// 可以判断一个实例是否是某个构造函数的实例
function Ctor() {}
const obj = new Ctor();
console.log(obj instanceof Ctor); // 输出: true

Array.isArray():判断数组(首选)


var arr = [];
console.log(Array.isArray(arr)); // 输出: true

数据类型的转化

数字:Number

let val= "123";
let numberVal = Number(val); // 123

字符串:String

toString:不可以转换null和undefinded,可以转布尔值

String:可以转换null和undefinded,可以转布尔值

let val= 123;
let stringVal = String(val); // "123"
let stringVal = toString(val); // "123"

对象⇌字符串

Json.stringify():将对象转成json字符串

var obj = { "name":"小鹿", "age":18};
var myJSON = JSON.stringify(obj); // {"name":"小鹿","age":18"}

Json.parse():将json字符串转成对象

var obj = JSON.parse('{ "name":"小鹿", "age":18}');
console.log(obj.name) // 小鹿

整数:parseInt

只对字符串有意义; 开头和结尾的空格是允许的。 如果字符串的第一个字符不能被转换为数字,那么 parseInt() 会返回 NaN

let floatVal = "123.456";
let intValue = parseInt(floatValue, 10); // 123

浮点数:parseFloat()

只返回字符串中开头的数字。 开头和结尾的空格是允许的。 如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN

let numericString = "123.456";
let floatValue = parseFloat(numericString); // 123.456

parse():

Date 对象的方法,解析一个日期时间字符串,返回1997/1/1午夜距离该日期时间的毫秒数

var d = Date.parse("Jul 8, 2005") // 1120752000000

遍历

foreach map filter every each some   (接受3个参数item, index,array)

Foreach:不会返回新的数组,而是在原基础上改变数组,用于数组的修改

let arr = [1,2,3]
arr.foreach((item,index,arr)=>{
arr[index] = item + 1
})

console.log(arr) //[2,3,4]

map:不会返回新的数组,但是会返回一个处理过数据的新数组

let arr = [1,2,3]
let newArr = arr.map((item,index,arr)=>{
return item * 2
})

console.log(arr) //[1,2,3]
console.log(newArr) //[2,4,6]

filter:过滤;不会返回新的数组,满足条件的元素会组成新的数组,return出来

let arr = [1,2,3]
let newArr = arr.filter((item,index,arr)=>{
return item > 2
})

console.log(arr) //[1,2,3]
console.log(newArr) //[3]

*以下不是处理 也不是过滤,是对数组中的每个元素进行判断,用法和filter一样,但返回值是布尔值

each:接受2个参数 要处理的元素,函数(index,value)。

every:只要一个不满足满足就返回false

some:只要一个满足满足就返回true

call bind apply

call bind apply改变this方向 | 三者区别

增删改查

push:数组末尾加

let arr= [];
let newArr= arrs.push('a', 'b'); 
console.log(arr) // ['a','b']

unshift:数组开头加

let newArr= arr.unshift('c'); 
console.log(arr) // ['a','b','c']

splice:相对灵活 可添加、删除、替换。接受3个参数()

let newArr = arr.splice(2,0,'c','d');
console.log(arr) // ['a','b','c','d']

contact:拼接;在数组末尾加元素或者数组

let newArr = arr.contact('c',['d','e']);
cosole.log(arr) // ['a','b','c','d','e']

pop:末尾最后一项删除

let newArr= arrs.pop(); 
console.log(arr) // ['a']

shift:开头第一项删除

let newArr= arrs.shift(); 
console.log(arr) // ['b']

其他

splice(第一个,参数不是索引,是索引+1,第一个)

slice(start,end)截取字符串

// 参数是索引,包头不包尾
let str="Hello world!"; 
str.slice(1,5); // ell0

split:分割;把一个字符串分割成字符串数组:

let str="How are you doing today?";
let n = str.split(" "); // How,are,you,doing,today?
console.log(n[0]) //How

 join:把数组中的所有元素转换一个字符串 | 通过指定的分隔符进行分隔的

let a = ["a", "b", "c", "d", "e"]
a.join()  // a,b,c,d,e

let b = [1,2,3,4,5]
b.join("|")  // 1|2|3|4|5

  sort:排序;排序顺序可以是字母或数字,并按升序或降序。

var arr = [2,3,1];
arr .sort(); // [1,2,3]

// 升序
arr.sort(function(a,b){return a-b});
// 降序
arr.sort(function(a,b){return b-a});

reverse:翻转;颠倒数组的顺序

let arr = [3,2,1]
arr.reverse() // [1,2,3]

 toFixed :把Number 四舍五入为指定小数位数的数字

var num = 5.56789;
var n=num.toFixed(2);  // 5.57

Math对象方法

Math方法参考 

拓展:html()和innerHTML的区别


$(selector).html()
document.getElementById("#selector").innerHTML

$(selector).html("Hello world!")
document.getElementById("tr1").innerHTML="hello";

由上可见,html()常适用于jQuery中,innerHTML用于JavaScript中

你可能感兴趣的:(javascript)