Node.js实习
一.JavaScript
- 基础类型有什么?
number,bool,string,null,undefined - 引用类型有什么?
object,array,function - 基础类型与引用类型有什么区别?
(1)基础类型是存在栈中,引用类型是存在栈和堆中;
(2)基础类型的值的修改是直接栈中修改的,而引用类型的值的修改是修改堆中的对象的属性或者方法,或者重新赋值一个地址,地址指向新的堆内存; - 什么是Promise?
Promise是一个类,里面有构造函数和then方法,支持链式异步回调,解决了以往的回调地狱,即嵌套的回调函数 - 执行以下代码,控制台会分别输出什么值,请简单说明?
for (var i = 0; i < 3; i++) {
setTimeout(function () {
console.log(i)
}, 1000);
}
输出:3
3
3
理由就是setTimeout是宏任务,它的执行时间是在主线程和微任务执行完后才执行的,所以当主线程的for循环执行完后,才执行三个setTimeout的回调函数,而for循环中的i是全局变量,当执行setTimeout时,它的值是3,所以输出三个3; - js中0.1+0.2=什么值,请简单说明?
0.1+0.2!=0.3,或者说0.1+0.2>0.3,因为js的数字采用64位二进制的方式来表示数字; - Node.js的优缺点?
优点:1.天生支持高并发,因为有libuv中的事件循环和线程池;
缺点:不适用CPU密集型运算;因为Node.js的主线程是单线程,如果主线程一直运算,则会阻塞回调函数的执行; - Express与Koa的区别?
(1)从原理上来讲,express使用了循环遍历的方式来查找匹配的中间件和路由;
而Koa使用了手动向下执行匹配和递归的方法,即洋葱模型;
(2)express是使用了es5的写法而koa使用了es6的写法; - Node.js常用的第三方模块有什么,请分别简单说明?
(1)fs模块,可以操作文件;
(2)http模块,可以建立一个http服务器;
(3)path模块,可以获取文件的路径和解析文件的路径;
(4)mongoose模块,可以连接mongodb数据库和现实指定数据库中文档的增删改查;
二.MySQL数据库
- 主要的索引类型有什么?
主键索引,唯一索引,普通索引 - 索引的目的是什么?
提高系统的性能;
使查找的时间大大减少,优化查找效率; - 索引对数据库系统的负面影响是什么
会占用内存
4.什么是外键?它的优缺点是什么?
外键是另外一张表的主键
三.算法
- 实现冒泡排序
说明:num是一个数组;
for(let i= num.length-1;i>=0;i--){
for(let j =0;j<i;j++){
if(num[j]>num[j+1]{
let temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
}
本答案不全,答案仅代表个人答案,可以去百度保证正确性