node.js实习面试题

Node.js实习

一.JavaScript

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

二.MySQL数据库

  1. 主要的索引类型有什么?
    主键索引,唯一索引,普通索引
  2. 索引的目的是什么?
    提高系统的性能;
    使查找的时间大大减少,优化查找效率;
  3. 索引对数据库系统的负面影响是什么
    会占用内存
    4.什么是外键?它的优缺点是什么?
    外键是另外一张表的主键

三.算法

  1. 实现冒泡排序
    说明: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;
}
}
}

本答案不全,答案仅代表个人答案,可以去百度保证正确性

猜你喜欢

转载自blog.csdn.net/weixin_43595755/article/details/118298562