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