同步和异步的区别+npm i 与 npm install 之间的细小区别

172 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天点击查看活动详情
一、commonJS 中的 require/exports 和 ES6 中import/export的区别是什么
commonJS 模块的重要特性是加载时执行,及脚本代码在 require 的时候,就会全部执行。一旦出现某个模块被“循环加载”就只输出已经执行的部分,还没有执行的部分是不输出的ES6 模块是动态引用,如果使用 import 从一个模块加载变量,那些变量不会缓存,而是成为一个指向被加载模块的引用,import/export 最终都是编译为 require/exports 来执行的

二、简述同步和异步的区别,如何避免回调地狱,node 的异步问题是如何解决的
同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为
异步方法调用一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而异步方法通常会在另外一个线程中,整个过程,不会阻碍调用者的工作避免回调地狱:
1)Promise
2)async/await
3)generator
4)事件发布/监听模式
模块化: 将回调函数转换为独立的函数
使用流程控制库,例如 aync
使用 Promise
使用 aync/await

三、npm i 与 npm install 之间的细小区别(必会)
1)用 npm i 安装的模块无法用 npm uninstall 卸载,需要用 npm uninstall i 命令
2)npm i 会帮助检测与当前 node 版本最匹配的 npm 包 版本号,并匹配出来相互依赖的 npm包应该提升的版本号
3)部分 npm 包在当前 node 版本下无法使用,必须使用建议版本
4)安装报错时 intall 肯定会出现 npm-debug.log 文件,npm i 不一定

四、node 和 前端项目怎么解决跨域的
设置 CORS 或者 使用使用 CORS 模块