(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改变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中