nodejs---day3(运行nodejs、exports和module.exports的区别)

1、运行nodejs

在vscode中运行nodejs,安装一个Code runner,点js文件右击,在菜单栏中选择run code即可运行

2、global

在node中有一个全局对象global,它的作用和网页中window类似
在全局中创建的变量都会作为global的属性保存。
在全局中创建的函数都会作为global的方法保存。
直接声明的属性,是全局变量,保存在global中,代码如下

a =10

一个js文件是一个模块,node会对模块进行包装,会在代码的最顶部添加,如下代码

function (exports,require ,module,_filename,_dirname){

会在代码的最底部,添加如下代码

}

模块中的代码都是包装在一个函数中执行的,并且在函数执行时,同时传递了5个实参
exports:该对象用来将变量或函数暴露到外部
require :函数,用来引入外部的模块
module:module代表模块本身,exports是module的属性

console.log(exports)  //{}
console.log(module.exports)//{}
console.log(module.exports==exports)//true

_filename:当前模块的完整路径

console.log(_filename)
d:\zfProject\nodejs\add.js:7

_dirname:当前模块所在文件夹路径

console.log(_dirname)
d:\zfProject\nodejs

2、exports和module.exports的区别

exports只能使用.的方式向外暴露内部的变量

exports.name='白龙马'

module.exports可以通过.的形式,也可以直接复制

module.exports.name='白龙马'
module.exports={
	name:'白龙马',
	age:'18'
}

数据类型存储简单类型存储在栈中,复杂类型存储在堆中
使用obj.a='沙和尚’修改的堆内存中的对象,改一个会影响所有指向这里的对象的值
使用a=null修改的是栈内存中的变量,只有a的值会发生改变,不会影响其他值。

var obj={}
obj.a='白龙马';
var a=obj.a;
obj.a='沙和尚'
a=null
console.log(obj.a)//沙和尚
console.log(a)//null

在这里插入图片描述

3、学习网址:

https://www.bilibili.com/video/BV1bs411E7pD?p=8&spm_id_from=pageDriver

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值