1.闭包
- 闭包是可以访问函数内部变量的函数,实质没说出来,要结合作用域去阐述
- 标准:闭包是JavaScript的一个特色,但也是一个难点。
- 要想理解闭包,首先要理解JavaScript特殊的变量作用域,分为局部变量和全局变量。
- 在函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。函数内部声明变量的时候,一定要使用var命令,如果不用的话,你实际上声明了一个全局变量。
- 那如何在函数外部访问函数内部的局部变量呢?我们就可以在父函数内部定义一个子函数,子函数可以访问父函数的局部变量,然后返回这个函数,这样可以在父函数的外部读取局部变量。
- 子函数就是闭包,闭包就是能够读取其他函数内部的变量的函数
- 应用:读取函数内部变量,还有保存变量的值或者说结果缓存
- 缺点:由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包
2.ES6(ES6是引入类来实现继承等面向对象编程)以前JS实现面向对象编程,使用构造函数
3.看过HTML,CSS,JS什么书籍
4.MySQL和MongoDB区别
- MongoDB
- 概述:数据库 集合 文档
- 优点
- 快速(在适量级的内存的MongoDB的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。)
- 高扩展性
- 存储的数据格式是json格式!
- 缺点
- mongodb不支持事务操作。
- mongodb占用空间过大。
- 开发文档不是很完全,完善。在海量数据处理的时候效率会显著变慢。
- 优点
- 概述:数据库 集合 文档
- MySQL
- 概述:数据库 表 记录 关系
- 优点
- 在不同的引擎上有不同的存储方式。
- 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。
- 开源数据库的份额在不断增加,mysql的份额也在持续增长。
5.学习JS以来对JS的认识(与其他语言的差别)
Java | JavaScript |
---|---|
面向对象,面向对象编程语言 | 基于对象,不完全面向对象。部分面向对象的特点 |
编译型语言,生成中间文件,字节码解释型,解释一部分,再运行一部分 | 解释性语言,不会生成中间文件 |
跨平台 | 安装虚拟机跨平台 运行在浏览器中,只要系统有浏览器就可以运行。 |
强类型,不同的数据类型严格区分 | 弱类型,同一个变量可以赋值不同的数据类型。 |
区分大小写 | 区分大小写 |
6.Vue、Angular、React区别
- 组件:都是基于组件,组件获取输入,内部计算,UI模板输出,提高代码可复用性
- Angular依赖于TypeScript;React 专注于使用Javascript ES6; Vue则使用Javascript ES5和ES6。
- 模板:Angular使用特殊的Angular语言; React模板是JSX;Vue的模板、脚本、样式在一个文件中 .vue后缀。
- 数据绑定:Angular、Vue是双向数据绑定,React是单向数据绑定
7.原型链
- 构造函数创建的对象都有一个属性__proto__指向原型对象prototype,原型链再往上走就是对象的原型对象,再往上就没有原型对象是null。