区别实例对象与 函数对象
- 实例对象:new 函数产生的对象,称为实例对象,简称为某某对象
- 函数对象:将函数作为对象使用时,简称函数对象
function Fn(){}
const fn = new Fn()
console.log(Fn.prototype) Fn是函数对象
Fn.call({})
$("#test")
$.get('/get')
二种类型的回调函数
- 同步回调
- 立即执行,完全执行完了才结束,不会放入回调队列中
- 例如: 数组遍历相关的回调函数/Promise的excutor函数
const arr = [1,2,3];
arr.map(item => {
console.log(item);
})
console.log('map遍历之后')
- 异步回调
- 不会立即执行,会放入回调队列中将来执行
- 例如:定时器回调 / ajax回调 / Promise的成功|失败的回调
setTimeout(()=>{
console.log('timeout callback')
})
console.log('setTimeout之后')
js的错误处理
- 错误的类型(常见的)
- Error:所有错误的父类型
- ReferenceError:引用类型不正确的错误
- TypeError:数据类型不正确错误
- RangeError:数据值不在其所允许的范围内
- SyntaxError:语法错误
- 错误处理
- 捕获错误 try ... catch
try{
let d
console.log(d.xxx)
}catch(error){
console.log(error.message)
console.log(error.stack)
}
- 抛出错误 throw error
function fn(a){
if(a%2 === 1){
}else{
throw new Error('当前a为偶数,请处理')
}
}
try{
fn(2)
}catch(error){
console.log(error.message)
}
- 错误对象
- message属性:错误相关信息
- stack属性:函数调用栈记录信息