1.ES5的继承和ES6的继承有什么区别?ES5的继承时通过prototype或构造函数机制来实现。ES5的继承实质上是先创建子类的实例对象,然后再将父类的方法添加到this上(Parent.apply(this))。ES6的继承机制完全不同,实质上是先创建父类的实例对象this(所以必须先调用父类的super()方法),然后再用子类的构造函数修改this。具体的:ES6通过class关键字定义类,里面有构造方法,类之间通过extends关键字实现继承。子类必须在constructor方法中调用super方法,否则新建实例报错。因为子类没有自己的this对象,而是继承了父类的this对象,然后对其进行加工。如果不调用super方法,子类得不到this对象。ps:super关键字指代父类的实例,即父类的this对象。在子类构造函数中,调用super后,才可使用this关键字,否则报错。2.如何实现一个闭包?闭包的作用有哪些?在一个函数里面嵌套另一个函数,被嵌套的那个函数的作用域是一个闭包。作用:创建私有变量,减少全局变量,防止变量名污染。可以操作外部作用域的变量,变量不会被浏览器回收,保存变量的值。3.介绍一下 JS 有哪些内置对象。Object 是 JavaScript 中所有对象的父对象数据封装类对象:Object、Array、Boolean、Number、String其他对象:Function、Argument、Math、Date、RegExp、Error4.new 操作符具体干了什么呢?(1)创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。(2)属性和方法被加入到 this 引用的对象中。(3)新创建的对象由 this 所引用,并且最后隐式的返回 this 。5.同步和异步的区别?同步的概念应该是来自于操作系统中关于同步的概念:不同进程为协同完成某项工作而在先后次序上调整(通过阻塞,唤醒等方式)。同步强调的是顺序性,谁先谁后;异步则不存在这种顺序性。同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下一步操作。异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。等请求完,页面不刷新,新内容也会出现,用户看到新内容。6.null 和 undefined 的区别?null: null表示空值,转为数值时为0;undefined:undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。• 变量被声明了,但没有赋值时,就等于undefined。• 对象没有赋值的属性,该属性的值为undefined。• 函数没有返回值时,默认返回undefined。7.JavaScript 原型,原型链 ? 有什么特点?JavaScript 原型: 每创建一个函数,函数上都有一个属性为 prototype,它的值是一个对象。 这个对象的作用在于当使用函数创建实例的时候,那么这些实例都会共享原型上的属性和方法。原型链: 在 JavaScript 中,每个对象都有一个指向它的原型(prototype)对象的内部链接(proto)。这个原型对象又有自己的原型,直到某个对象的原型为 null 为止(也就是不再有原型指向)。这种一级一级的链结构就称为原型链(prototype chain)。 当查找一个对象的属性时,JavaScript 会向上遍历原型链,直到找到给定名称的属性为止;到查找到达原型链的顶部(Object.prototype),仍然没有找到指定的属性,就会返回 undefined8.如何获取一个大于等于0且小于等于9的随机整数?. function randomNum(){ return Math.floor(Math.random()*10) }9.想要去除一个字符串的第一个字符,有哪些方法可以实现. str.slice(1) str.substr(1) str.substring(1) str.replace(/./,’’) str.replace(str.charAt(0),’’)10.JavaScript的组成JavaScript 由以下三部分组成:ECMAScript(核心):JavaScript 语言基础DOM(文档对象模型):规定了访问HTML和XML的接口BOM(浏览器对象模型):提供了浏览器窗口之间进行交互的对象和方法