前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >node.js学习笔记01-cmd0node0全局数据0异步事件

node.js学习笔记01-cmd0node0全局数据0异步事件

作者头像
Mr. 柳上原
发布2019-04-09 10:47:10
9240
发布2019-04-09 10:47:10
举报

Author:Mr.柳上原

  • 付出不亚于任何的努力
  • 愿我们所有的努力,都不会被生活辜负
  • 不忘初心,方得始终

Nodejs node规范: CommonJS CommonJS是一种规范,NodeJS是这种规范的实现

AMD A-ajax,是CommonJS规范的延伸,是一种异步的,需要对应的模块支持(requirejs)

CMD 是CommonJS规范的延伸,模块的定义和引入

控制台的使用 cmd 打开控制台(黑窗口)

cmd命令: ls(查看当前文件夹内的文件) cd 文件名(进入此文件夹)

node命令: node -v (Node版本号) node 文件名(运行当前文件) node ./文件名/文件名(运行当前文件夹的xxx文件夹下的xxx文件)

nodejs的使用 node的顶层对象是global(全局),不再是window

代码语言:javascript
复制
导入模块
文件一.js:
let obj1 = require("./文件二"); 
./表示当前目录,../表示上层目录,/表示根目录
注意点:导入的文件后缀为js的时候,.js可以不用写,导入文件时,文件名前面必须加./,只有node官方的核心模块和网上下载的模块可以不用加./

定义跨文件的全局变量
文件一.js:
console.log(global.xxx); // 123

文件二.js:
global.xxx = 123; 
把需要的属性挂载到global下面
node会把每个导入的文件包装到一个函数里function(){},所以导入的文件的数据都是局部数据

获取跨文件的数据
文件一.js:
console.log(obj1); // {123, function (){}}

文件二.js:
module.exports = {} 
module.exports里的值默认是对象,require导入的其实是文件里的module.exports的值

多个值的写法一:扩展属性或键值对
module.exports.num = 123;
module.exports.fn = function (){}
module.exports = {
num: 1,
fn: function (){}
}

多个值的写法二:exports
node底层global.exports = module.exports,exports = module.exports
exports.num = 123;
exports.fn = function (){}

nodejs的执行
文件一.js:
在控制台里,进入当前js所在的文件夹
node 文件一 回车 // 后缀.js可以不用写

nodejs把所有的行为抽象成为事件
nodejs用来执行代码的过程叫做事件循环
while(true){} 
相当于node在执行的开始生成了一个无限循环的while

node的异步事件处理:
setImmediate(() => { // setImmediate的回调函数是异步
console.log(1);
})
promise.resolve("2") // promise是同步
.then(res => { // then的回调函数是异步
console.log(res);
})
process.nextTick(() => { // process的回调函数是异步
consloe.log(3);
})
console.log(4); // 同步
js全部的代码都是同步的,真正的异步是事件的回调函数

事件队列 macro-task:script(全部的代码),setInterval,setTimeout,setImmediate,I/O // setInterval和setTimeout优先级相同,默认时间下谁先写随先执行

micro-task:process.nextTick,promise(then) // 优先级

第一步:script(全部的代码) 第二步:执行清空micro-task里的所有代码 第三步:执行macro-task的下一个代码 第四步:再次执行清空micro-task里的所有代码 第五步:执行macro-task的下下一个代码 第六步:再再次执行清空micro-task里的所有代码 ......

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.03.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档