Math.max()
利用Math.max()来判断一个数组的最大值,有3种简单的方法
let arr=[1,5,2,7,8,23];
Math.max(...arr)//利用的是ES6里面的扩展运算符
Math.max.apply(null,arr)//利用的是apply()方法
Math.max.call(null,...arr)//利用的是call()方法
apply和call的区别
- fn.apply(参数1,[,,,])
fn函数会立即执行,参数2传的是数组,参数1是改变后this的指向,参数1如果为null,则不改变this的指向 - fn.call(参数1,...[,,,]) 和apply一样,只是参数2是一个一个数,类似于展开后的数组
Number()为0的情况
注意1Number({})是NaN,与空数组不同
注意2Number(undefined)也是NaN
Number()
Number(0)
Number('')
Number('0')
Number(false)
Number(null)
Number([])
Number([0])//数组中如果只有一个值,也会转为相应的值,这里是0,如果是多个的话,就是NaN
Number(['0'])
布尔值为false的情况
NaN '' undefined null 0 -0
以下哪一条js语句会产生运行错误
var obj=( );//会报错,语法错误
var obj=[ ];//数组对象
var obj={ };//对象
var obj=/ /;//是正则对象;
判断数据类型的万能方法
var obj=/ /;
Object.prototype.toString.call(obj)////[object RegExp]
//obj,是指把指向给obj,要写call的目的是解决子类重写的toString方法带来的影响,当然用其他改变this指向的方法也可以
函数自调用
两种形式:
//第一种
var i=function(){
console.log(1)
}();
//第二种
(function(){
console.log(2)
})()