1.什么是dom??
2.什么是bom??
3.window navigator document 属于dom还是bom??
4.什么是虚拟dom??
5.javascript中的基本数据类型??
哪些是原始值?哪些是引用值??有什么区别??
6.数组和链表
什么时候用数组,什么时候用链表?
7.堆和栈
8.说说作用域
9.闭包 https://blog.csdn.net/zhouzuoluo/article/details/80723699
https://blog.csdn.net/u012411414/article/details/43248135
什么时候产生闭包,闭包有啥好处?
外部函数内包含一个函数,内部函数要调用外部函数的变量
闭包会导致变量不能被释放,造成内存泄漏,可以使用JavaScript中的回收机制,就是将不用的变量处理掉,比如内部函数和外部函数不用的变量毁掉。
10.原型链
https://www.cnblogs.com/chengzp/p/prototype.html
实例中的_proto_指向原型对象,构造函数中的prototype指向原型对象
如果想让构造函数中的所有实例都具有某个方法,可以在实例的原型上定义这个方法。
对象的_proto_是原型,原型也是对象,也有_proto_,原型的_proto_的_proto_也是原型,这样就构成了原型链,当找到Object.prototype的时候就到头了
在访问一个实例的属性的时候,先在实例本身中找,如果没找到就去它的原型中找,还没找到就再往上找,直到找到。这就是原型链。
只有函数有prototype,对象是没有的。
但是函数也是有__proto__的,因为函数也是对象。函数的__proto__指向的是Function.prototype。
也就是说普通函数是Function这个构造函数的一个实例。
instanceof是判断实例对象的__proto__和生成该实例的构造函数的prototype是不是引用的同一个地址。是返回true,否返回false。
11.this
12.new运算符
new运算符的原理
- 一个新对象被创建。它继承自foo.prototype。
- 构造函数返回一个对象。在执行的时候,相应的传参会被传入,同时上下文(this)会被指定为这个新的实例。
- new foo等同于new foo(), 只能用在不传递任何参数的情况
- 如果构造函数反悔了一个对象,那个这个对象会取代整个new出来的结果。如果构造函数没有返回对象,那个new出来的结果为步骤1创建的对象。
13.作用域
所谓作用域就是:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。
https://www.cnblogs.com/onepixel/p/5036369.html
14.数组
https://www.cnblogs.com/obel/p/7016414.html