Node基础--day01

1. 语言和环境 (平台) 之间的关系

  • 语言:编写代码的语法规范;
    遵循特定语法规范,编写出来的代码,只是单纯的文本字符串而已,并不具备可执行的特点;
  • 环境 (平台):提供了执行代码的能力;编写的代码,想要执行,必须依赖于,特定的执行环境;
    例如:Javascript代码,可以在浏览器中被执行;所以,浏览器,就是一个 Javascript 的执行环境;

2. Node环境中的 Javascript

  • Node.js:就是 Javascript 服务器端,运行环境;可以实现 服务器端的编程;
  • 浏览器中 Javascript 的组成部分:ECMAScript核心 + DOM + BOM
  • Node.js 中 Javascript 的组成部分:ECMAScript 核心 + 全局成员 + 核心 API 模块
    全局成员:console、setInterval、setTimeout …
    核心 API 模块:Node 平台 提供的一些 独有的API;
  • Node.js 中 没有 BOM 和 DOM
    由于 Node 服务器端 运行环境中,没有浏览器 和 HTML 的概念;所以,没有 DOM 和 BOM 对象模型,取而代之的,是 全局成员 和 核心 API 模块;

3. Node.js 可以做什么

  • 使用 Javascript 编写,符合规范的 后端 API 接口 或网站;
  • 开发一些实用的工具 或包;
  • 基于 Socket 技术,开发类似于,聊天室 之类的,即时通讯项目;
  • 基于 Electron 环境,开发 桌面软件;

4. 环境安装

  • 下载 node.js安装包,安装 并配置环境
    LTS 版本:【推荐在企业中使用】,长期稳定版 的安装包,运行稳定、安全;
    Current 版本:【推荐学习或尝鲜去使用】,安装包中,有最新的Node特性;
  • 安装 node,同时安装 npm 包管理工具;
  • 查看 Node 版本:打开终端 输入 node -v
  • 如何进入终端:
    shift + 鼠标右键 --> 在此处打开 powershell/cmd 窗口
    文件夹地址栏:cmd

5. path 环境变量

  • path环境变量:能够让我们在终端中,执行相关的命令,快速启动应用程序;
    用户环境变量:每个人独有的
    系统环境变量:共有的; (包括path环境变量)
  • 终端输入命令的形式,快速启动应用程序时,路径查找规则
    先在当前运行 终端命令的 目录中查找,如果有,直接运行;
    如果没有,则去全局的 path 环境变量中查找;

6. Node 环境中 执行 js 代码的两种方式

1.Ctrl + ~ 快速打开 VSCode 集成的,终端面板,执行 node 命令;
2. node 要执行的 js文件路径,执行指定的 JS文件;

键盘的 ↑ , 快速定位到,上一次执行的命令
tab  快速补全路径
cls  清屏
cd.. 向上一层

REPL 环境 (了解)

  1. 打开任意终端,直接输入 node 并回车,就会进入 REPL 环境中;
    按两次ctrl + c 就能退出 REPL 环境;
  2. REPL中,每个字母代表的意思:
    R: Read 的意思,每当我们输入完毕代码之后,只要敲击回车,Node环境就会读取用户输入的代码
    E:Evaluate 的意思,表示把 Read 进来的用户代码,调用 类似于 Eval 的函数,去解析执行
    P:Print 输出的意思;把第二步中解析执行的结果,输出给用户;
    L:Loop 循环的意思,表示当输出完毕之后,进入下一次的 REP循环

7. ECMAScript 6常用语法

1) let 变量 与 const 常量

  1. var 定义的变量:
    存在变量提升问题;
    没有块级作用域 (作用域外仍可使用),容易造成变量污染
//使用 var 定义的变量没有 { } 作用域的限制
for (var i = 0; i < 10; i++) {}
console.log(i)//10
//let 关键字定义变量
for (let i = 0; i < 11; i++) { }
console.log(i) // not defined
  1. let 主要特性:
    没有变量提升问题,只有定义后,才能使用;
    有 { } 作用域;
  2. const 主要特性:
    没有变量提升问题;
    有 块级 作用域:
    for循环内可以打印10次 const d ;因为每次都是一个单独的作用域, 不冲突, 不是重新赋值;
    const 定义的常量,无法被重新赋值;定义常量时,必须定义且初始化,否则报错;
    必须定义并赋值; const d =10; const d 不行;
    能用const;就不用let;能用let;就不用var;

2) 变量的解构赋值(常用)
把对象中的,属性 当作变量,给解放出来;就能当作变量,直接使用了;

// let { } = user 解构赋值语法;可以使用':'为解构出来的变量,重命名;
let user = {
  name: 'zs',
  age: 20,
  gender: '男'
}
let { name : name123, age, gender } = user
console.log(name123,age,gender)//zs,20,男
//省略了 let age = user.age; let gender = user.gender;
//user.name='zs'仍可以用,相当于声明了一个,新的变量 name123;
//name123 = 'er';可以重新赋值;

3) 箭头函数(常用)

  • 普通 function函数
function show() {
    console.log('普通 function 定义的 show方法')
}
  • 箭头函数
(形参列表) => { 函数体代码 }
//箭头函数,本质上就是一个匿名函数(没有函数名);
//箭头函数内部的 this, 永远指向,箭头函数外部的 this;

//点击 1s后,变成红色
document.getElementById('btn').onclick = function () {
      setTimeout(function () {
        console.log(this) //setTimeout 里的 this,指向 Window; 
        this.style.backgroundColor = 'red'
      }, 1000)
} 
//箭头函数内、外this,都是指向点击的按钮
document.getElementById('btn').onclick = function() {
     setTimeout(() => {
        console.log(this)
        this.style.backgroundColor = 'red'
     }, 1000)
}
  • 箭头函数变体
function add(x,y) {
   return x + y
}

var add = (x,y) => {return x + y} 
console.log(add(1,2))//3

变体1:如果箭头函数,左侧的形参列表中,只有一个参数,则左侧 小括号可以省略;

变体2:如果右侧函数体中,只有一行代码,则 { } 可以省略;

变体3:如果箭头函数左侧 只有一个 形参,且右侧只有一行代码,则 两边的 () 和 {} 都可以省略;

function add(x) {
   return x + 20
}

var add = x => x + 20 //函数体只有一行代码时,默认把{ }的值,返回回去,所以不要ruturn
console.log(add(3))//23

如果省略了 右侧函数体的 { },默认会把 右侧函数体中,代码的执行结果,当作箭头函数的调用结果, return 出去;
4) 对象中 定义方法 和属性 的便捷方式

let name = 'zs'
let age = 22
function show() {
  console.log('我是zs')
}

/*var person = {
  name: name,
  age: age,
  show: show
}
console.log(person)//{ name: 'zs', age: 22, show: [Function: show] } */

var person = {
  name, 
  age,
  show,                     // 上面没有定义的 say 方法
  say() {                   // say: function () {           
    console.log('ok')       //      console.log('ok')
  }                         // }
}
console.log(person)// { name: 'zs',age: 22,show: [Function: show],say: [Function: say] }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值