一文搞懂nodejs和JS的模块化

简介: 一文搞懂nodejs和JS的模块化
一、Nodejs是什么?

是一个JS的运行环境。是一款可以让JS代码在电脑的任意地方都能运行的软件。

相当于是将谷歌浏览器的V8引擎(JS解析器)独立出来了。

Nodejs执行的JS是ECMAscript,不能执行BOM、DOM。

二、node.js可以做什么?
  1. 可以读写本地文件
  2. 完成前端构建化工作:压缩、打包
  3. 是服务器语言,地位等同于java,PHP,.net,意味着可以直接使用JS来做一个动态网站(可以连接数据库)(意味着前端也可以做后端了)
  4. 可以开发软件、APP 比如:VScode就是基于nodejs开发的
三、学习的目的
  1. Nodejs 了解和熟悉一门后端语言
  2. 前端构建化、自动化。webpack、脚手架等等
  3. 为vue的豪华版做准备
四、Node.js安装
  • 首先到官网 nodejs 根据自己系统版本下载对应的安装文件,目前最新版本为16.17.0,一般如果最末尾的是奇数,则代表该版本不太稳定,如果是偶数则表示是稳定版,但目前好像不再是这样,官网推荐也是奇数版
  • 下载完成后进行安装,就像安装普通软件那样,比如QQ你总会安装吧,按照默认配置项一路点击下一步直到安装成功为止
  • 安装完成后在系统CMD命令窗口中查看是否安装成功,输入node -v 如果能得到版本号则表示安装成功

五、使用Nodejs的方式
  1. 交互模式

在任意命令行工具,输入node:

然后在光标处输入JS代码即可。

退出:两次Ctrl+C

  1. 直接执行JS文件

准备一个JS文件

在命令行中进入到该目录,然后输入:

node js文件

执行它。

注意:Nodejs中没法执行BOM、DOM的方法

六、node指令
  1. 进入到对应目录后,使用 node js文件名可运行js文件
  2. node -v 查看版本 (注意不是进入到交互模式)
  3. 直接输入node 回车,进入交互模式,可以运行任意node.js支持的JS(非DOM、BOM)
  4. 连续按两次Ctrl+C退出交互模式回到普通模式
  5. 安装node.js后可使用任意命令行工具运行node.js,比如系统的cmd,node.exe,git Bash。推荐下载安装git bash。因为这个很方便可以定位到当前目录然后直接执行node.js,而且今后学习GitHub时也需要该工具同步本地线上资源。
  6. node -help 查看node的帮助
七、JS的模块

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G2sYGGQC-1661664529576)(https://raw.githubusercontent.com/imqdcn/picgo/main/img/07.%E6%A8%A1%E5%9D%97%E5%8C%964.jpg)]

在nodejs中,一切皆模块,现在我们通过最熟悉的方式感受Nodejs下的模块的概念和用处。

一个JS文件就相当于是一个模块。在后期我们会通过各种模块(依赖包)来实现前端构建化、工程化等。

如何解决JS模块化产生的命名冲突和变量污染问题:

  1. 使用变量前缀
    比如两个相同名字的同学如何区分。
var moduleA_a=1; 
var moduleB_a=1;
  1. 问题:仍然存在大量全局变量或函数(治标不治本)
  2. 命名空间(使用一个对象来装一个人写的代码)
    将变量和属性全部放在对象中,再通过对象来访问模块属性和方法。
//比如这是张三写的代码
var zs={
    a:1,
    fun:function(){
    }
}
  1. 问题:
    1、当代码越来越大时,容易出现对象嵌套对象的情况。会导致访问路径过长。
    2、所以属性和方法都会暴露,其他模块可以轻松改变该模块对象。
  2. IIFE(立即执行函数表达式)
    IIFE:Immediately Invoked Function Expression
    新建一个js文件,然后写如下代码:
var ysg=(function(){
    // 公共变量
    var a=1;
    // 私有变量
    var b=2;
    // 公共函数
    function fun(){
        alert("药水哥写的代码")
    }
    // 私有函数
    function bar(){
        alert("自己享用")
    }
    // 将要给别人调用的方法返回出去:
    return{
        // 需要给别人用什么,就返回什么
        a,
        fun
    }
})();
  1. 将其引入到一个index.html中,可以在index.html中使用a变量fun函数
    好处:

1、可创建私有作用域(变量,函数)避免命名冲突

2、能实现模块的开发

是较为完美推荐的方式

相关文章
|
27天前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
44 1
|
3月前
|
JavaScript UED
js之模块化(2)
js之模块化(2)
|
3月前
|
存储 JavaScript 前端开发
webSocket+Node+Js实现在线聊天(包含所有代码)
文章介绍了如何使用WebSocket、Node.js和JavaScript实现在线聊天功能,包括完整的前端和后端代码示例。
227 0
|
4月前
|
JavaScript 前端开发 编译器
解锁JavaScript模块化编程新纪元:从CommonJS的基石到ES Modules的飞跃,探索代码组织的艺术与科学
【8月更文挑战第27天】随着Web应用复杂度的提升,JavaScript模块化编程变得至关重要,它能有效降低代码耦合度并提高项目可维护性及扩展性。从CommonJS到ES Modules,模块化标准经历了显著的发展。CommonJS最初专为服务器端设计,通过`require()`同步加载模块。而ES Modules作为官方标准,支持异步加载,更适合浏览器环境,并且能够进行静态分析以优化性能。这两种标准各有特色,但ES Modules凭借其更广泛的跨平台兼容性和现代语法逐渐成为主流。这一演进不仅标志着JavaScript模块化的成熟,也反映了整个JavaScript生态系统的不断完善。
53 3
|
14天前
|
存储 JavaScript NoSQL
Node.js新作《循序渐进Node.js企业级开发实践》简介
《循序渐进Node.js企业级开发实践》由清华大学出版社出版,基于Node.js 22.3.0编写,包含26个实战案例和43个上机练习,旨在帮助读者从基础到进阶全面掌握Node.js技术,适用于初学者、进阶开发者及全栈工程师。
44 9
|
1月前
|
JavaScript 前端开发 中间件
JS服务端技术—Node.js知识点
本文介绍了Node.js中的几个重要模块,包括NPM、Buffer、fs模块、path模块、express模块、http模块以及mysql模块。每部分不仅提供了基础概念,还推荐了相关博文供深入学习。特别强调了express模块的使用,包括响应相关函数、中间件、Router和请求体数据解析等内容。文章还讨论了静态资源无法访问的问题及其解决方案,并总结了一些通用设置。适合Node.js初学者参考学习。
41 1
|
1月前
|
开发框架 JavaScript 前端开发
Node.js日记:客户端和服务端介绍、Node.js介绍
Node.js日记:客户端和服务端介绍、Node.js介绍
|
1月前
|
JavaScript 前端开发 开发工具
Node.js——初识Node.js
Node.js——初识Node.js
34 4
|
1月前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
37 4
|
3月前
|
JavaScript 前端开发 开发者
js之模块化(1)
js之模块化(1)
下一篇
DataWorks