程序中的模块化
开发效率高 一次编写多次使用方便维护了(维护的成本更低)模块之间有高耦合低内聚的特点为什么要在 程序 中使用 模块化的开发方式
命名冲突文件依赖前端 做静态资源的 后端 操控服务器的硬件的
1.就业有市场 2.有商业用途 国内一些创业公司用用的比较多,功夫熊(做上门保健的,美甲、按摩) 国外的一些大公司都有使用:Facebook、Twitter、Google 国内的一些大公司:Alibaba(天猫所有的页面都是通过Node提供的服务)、Tencent、Baidu 3.本身技术是有价值 4.js开发
一门脚步语言 需要嵌入html执行
校验表单 操作dom 等等
操作服务器硬件
浏览器解析js,目的是为了让计算机能看懂js,看懂01010101,机器码、字节码 编译
内核–>js引擎
引擎 1.转化 汽油柴油等等->转化->成动能 模板+数据—>页面 js代码—>机器码\字节码 2.移植性 js引擎套一个壳子,写js代码传给js引擎,操作硬件 node.js v8引擎去解析js
Node 是一个可以解析和执行 JavaScript 代码的 运行时环境
Node.js 的作者 瑞恩.达尔nvm 用法 查看版本号 nvm list 用哪个版本(已经下载过的版本) nvm use 版本号 nvm use 版本号 32 下载相对应版本 nvm install 版本号 nvm install 版本号 32
nvm下载的是二进制版本
## 控制台基本使用 允许用户可以在终端命令台中与操作系统交互,其实就是输入与输出 ### 如何打开cmd 1. 通过 按 window 键,输入 `cmd` 打开cmd程序 2. 通过 `win+r` 输入 `cmd`,敲回车就可以进入 ### 基本命令 - `dir` directory 列出当前目录下所有的条目 + 别名 `ls` 在 powershell 中可以使用 - `cd` change directory 切换目录切换到当前目录下的 Desktop 目录 当想切换到当前目录的时候,最好使用 cd ./ 相对路径的形式 C:\Users\iroc>cd Desktop C:\Users\iroc\Desktop>
在Windows 上切换盘符: d:
切换绝对路径之后再同一个盘符下才有效
切换到上一级目录 C:\Users\iroc\Desktop\code\seajs>cd ../ C:\Users\iroc\Desktop\code>
连续进入多级目录 C:\Users\iroc\Desktop\code>cd seajs/a C:\Users\iroc\Desktop\code\seajs\a>
- `cls` clear screen 清屏 + 别名 clear 在widnows中的 `powershell` 中可以使用 windows下的寻址用\反斜杠 ### path 环境变量 目的是为了在控制台中的任何目录都可以快速打开或者使用该可执行文件 环境变量就是用来存储系统级别的变量 - 添加环境变量 + 我的电脑 -> 右键选择属性 -> 高级系统设置 -> 切换到`高级`面板 -> 环境变量 + 第一种方式:直接把可执行文件所属的目录 放到 PATH 环境变量中(如果没有PATH环境变量,自己新建) + 第二种方式:新建一个环境变量,变量名规范:逻辑名_HOME 变量值:该可执行文件所属的目录 + 注意:无论是直接添加的路径还是引用的变量名,一定要用 英文的分号 区分开 + 引用变量名的时候,变量名两边都是 `%` `> feiq` 当你在控制台中输入一个程序的名字的时候,cmd 默认把它当成一个可执行文件去执行了, 优先找当前目录下是否有没有一个叫做feiq.exe 的可执行文件,如果有,直接执行打开 如果没有,cmd会进入 path 环境变量中 一个目录一个目录的挨着查找里面是否有该可执行文件 ## REPL(Read-eval-print-loop) 运行环境 用来测试一下代码的,repl和chrome的控制台很像 - 通过在控制台中输入 `node` 敲回车就可以计入 REPL 运行环境 - 通过在REPL运行环境中 连续按两次 `Ctrl+C` 就可以退出 REPL 运行环境 ## 执行js文件 用node执行js文件,文件在当前目录下---->node +文件名 如果不在当前目录下,node +文件路径的形式执行 相对路径 ./当前路径 ../上级目录 绝对路径执行js的方式 node c:\Users\cena\Desktop\code\01helloworld.js ## Global global和window很像,都是全局对象 ## CONSOLE断言 是用来测试用的 断言就是假定一个条件,如果条件成立则不输出任何内容,如果条件不成立则报错还要输出想要输出的内容。 console.assert(条件,条件不成立输出的内容); var foo=3; console.assert(foo==3,”失败”); time() timeEnd()成对出现,计算在两个方法中间的代码的运行时间,传入的参数要一致 console.time(‘test’);
console.timeEnd(‘test1’);
### __dirname 和 __filename __dirnamee 用来找到当前文件夹的路径 __filename 用来去到当前文件的路径 不知道代码要才哪使用的时候,用于灵活的写代码取路径的时候。 它们属于模块作用域,可以直接使用 它们两个用来获取路径的,一般用于操作文件路径的时候,才会用到 ## process process 是一个全局可用对象,用来和我们现在启动中的node进行交互的 process.version取版本号 在控制台做标准输出 process.stdout.write(`123123`); process.pid:当前进程的进程号。 process.version:Node的版本,比如v0.10.18。 process.platform:当前系统平台,比如Linux。 process.env:指向当前shell的环境变量,比如process.env.HOME。 process.stdout:指向标准输出。 process.stdin:指向标准输入。 process.stderr:指向标准错误。 ## 模块系统 ## node.js模块化一个js文件在node里面我们就理解为一个模块 require用来加载模块 module.exports用来曝露属性和方法的,因为模块有封装性,需要打破封装性曝露方法和属性来 exports是module.exports的别名,exports可以做的事情,module.exports都可以做,exports只能用.的形式曝露属性和方法 “`