前提准备:
1. 区别实例对象和函数对象
1 Function Fn(){}; 大写的默认是构造函数。
const fn = new Fn(); 加new调用,Fn被称为:构造函数。fn被称为:实例对象(对象)
括号左边是函数。点的左边是对象。
2 Fn.call(); Fn是函数对象
$('#test') jq实例函数。
$.get('/test');jq函数对象。
a.b.c()。 a()[0]()。括号左边肯定是个函数。[]中括号左边就是数组。
2. 两种类型的回调函数。
回调函数定义:
1 是我定义(setTimeout就不是)。2 我没有调。函数+()就是执行。3会执行。
2.同步回调:
arr.forEach( item => { console.log(item)} )
console.log(arr)
=>{}同步回调函数。
3.异步回调:
setTimeout( () =>{console.log('')},0)
console.log('1');
=>{}异步回调函数,放在队列中来执行
3. JS的error处理
1.错误类型: Error:所有错误的父类型
1. ReferenceError:引用的变量不存在。reference引用。console.log(a)
2.TypeError:数据类型不正确的错误。 consloe.log(undefine.xxx);cannot read property 'xx' of undefind; 不能读取underlifin的属性xx。
3.RangeError:function fn(){};递归调用。会产生死循环。Max
4.Syntax 语法错误。
2.
捕获错误:try catch
抛出错误:throw error。系统通知的方式。
2.错误处理
3.错误对象
二。promise使用
1抽象理解: promise是什么JS异步编程的解决方法(之前的方案是什么呢?)
2 具体表达:语法上promise是一个构造函数。功能上:promise对象可以封装一个异步操作,并且异步操作的获取结果。
2+2+1
2 个问题超过面试官的准备。
2 个和其他人差不多。
1 个啥也不知道。
2 为什么
3 如何用