1.js有哪些数据类型:
js分为基本数据类型和复杂的数据类型:
基本的:String,Number,Boolean,undefined,Null。
复杂的:Object(Function,Array);
在es6中新引入了一个基本数据类型Symbol。
2.异步编程的方式:
js执行环境是单线程的(single thread);有可能会在执行的过程中出现假死,为了解决这个问题,javascript语言有两种任务执行的模式:同步和异步。异步可以通过几种方法来实现:回调函数,事件监听(setTimeout),发布/订阅,Promises对象。
3.js如何实现面向对象:
在js中一切皆为对象,原始的数据类型会被自动的转化成对象,function,array的本质也是对象,就连js最最基本的原型他也是对象。都知道java的面向对象的,面向对象的特性封装,继承,多态。js实现这特性的方法是:
封装:js也有getter和setter,并且我们也可以创建构造函数。
继承:js的继承方式是原型(链)继承。
多态:我们可以通过js的arguments对象来实现多态。
4.最喜欢的es6特性:
我个人来讲最喜欢的还是let,es5中我们定义变量全是var定义的,而let定义的变量是块级作用域,比var严谨了很多,尤其是最经典的点击弹出对应下标的问题。(具体的过几天我重新看一遍es6的书籍,写一份更为详细的es6观后感)