Node.js的基礎知識點


一,語言 和 環境(平台) 之間的關系

1,瀏覽器環境 中的 Javascript

瀏覽器中 Javascript 的組成部分

  • ECMAScript核心 + DOM + BOM

2,Node環境 中的 Javascript
  1. Node.js 中 Javascript 的組成部分

    • ECMAScript 核心 + 全局成員 + 核心 API 模塊

    • 全局成員:console、setInterval、setTimeout。。。

    • 核心 API 模塊:就是 Node 平台 單獨提供的一些API,這些API是Node平台所獨有的;

  2. 注意:Node.js 中 沒有 BOM 和 DOM

    1. 由於 Node 服務器端運行環境中,沒有瀏覽器 和 HTML 的概念,所以,Node中的javascript 提出了 DOM 和 BOM 這兩個對象模型,取而代之的,是 全局成員 和 核心 API 模塊;

二,ECMAScript 規范,瀏覽器中的js,Node中的js之間的關系

  1. ECMAScript 規范(標准):就是一本書,這本書中規定了語言的特性;

  2. 瀏覽器中的js:

    • 瀏覽器中的 js 組成部分:ECMAScript 核心 + DOM + BOM

  3. Node中的js:

    • Node中的 js 組成部分: ECMAScript 核心 + 全局成員 + 核心API成員

三,總結

  1. 什么是 Node.js(我們自己給它下個定義)

    就是一個服務器端的Javascript運行環境,可以讓程序員,通過 Javascript 做 后台服務器編程開發

  2. 學習 Node.js 可以做什么

    • 像 PHP 一樣,使用 Javascript 編寫符合規范的后端 API 接口網站

    • 使用 Node.js 開發一些實用的工具

    • 基於 Socket 技術,開發類似於聊天室之類的即時通訊項目

    • 基於 Electron 環境,開發桌面軟件

    • ect...

四、ECMAScript 6常用語法

4.1 let(變量) 與 const(常量)
  1. 之前定義變量,用 var 關鍵字;有如下主要缺點:

    • 存在變量提升問題,降低 js 代碼的可閱讀性

    • 沒有塊級作用域,容易造成變量污染

  2. let 主要特性:

    • 不存在變量提升問題,只有定義之后才能使用此變量

    • 先定義再使用(暫時性死區),不可以重復定義,否則會報錯

    • { } 作用域

  3. const 主要特性:

    • 不存在變量提升問題,只有定義之后才能使用此變量

    • const 定義的常量*無法被重新賦值,因為常量無法修改,變量可修改*

    • 當定義常量的時候,必須定義且初始化(即需要賦值),否則報語法錯誤

    • const 定義的常量,也有 塊級作用域

    • for循環里面定義的const常量,擁有獨立的塊級作用域,每次循環,都是一個新的作用域

4.2 變量的解構賦值(常用)

定義:所謂的解構賦值,就是把 某個對象中的屬性,當作變量,給解放出來,這樣,今后就能夠當作變量直接使用了;

  • 可以使用 :為解構出來的變量重命名


// 變量的解構賦值
定義 let user={
  name:'zs',
  age:20,
  gender:'男'
}
結構賦值 const { name : name123, age, gender } = user
name : name123相當於,把變量name的值賦值給name123
console.log(name123)
4.3 箭頭函數(常用)
  1. 語法:

    • 定義普通的 function 函數


      function show() {
         console.log('這是普通 function 定義的 show 方法')
      }
      var add(x,y){
       return x+y;
      }
      add(1,2)
    • 把方法定義為箭頭函數(最完整的寫法)


      (形參列表) => { 函數體代碼 }
      () => {
       console.log('這是普通 function 定義的 show 方法')
      }
      var add=(x,y)=>x+y;
      add(1,2)
  2. 箭頭函數,本質上就是一個匿名函數

  3. 箭頭函數的特性: 箭頭函數內部的 this, 永遠和 箭頭函數外部的 this 保持一致;

  4. 變體

    • 變體1:如果箭頭函數,左側的形參列表中,只有一個參數,則,左側小括號可以省略;

    • 變體2:如果右側函數體中,只有一行代碼,則,右側的 { } 可以省略;

    • 變體3:如果箭頭函數左側 只有一個 形參,而且右側只有一行代碼,則 兩邊的 (){} 都可以省略

  5. 注意: 如果我們省略了 右側函數體的 { },那么,默認會把 右側函數體中代碼的執行結果,當作箭頭函數的調用結果 return 出去;

4.4 對象中 定義方法定義屬性 的便捷方式

var a={
name: 'zs',
age:18,
say(){
console.log('111');
}
}

五,文件操作

1,文件讀取

fs.readFile

const fs = require('fs')//引入模塊
fs.readFile('./files/1.txt','utf-8',function(err,data){
console.log(err) //err為null,就證明成功了
console.log(data)//讀取的數據
})

fs.readFile('./files/1.txt','utf-8',function(err,data){

console.log('讀取成功+'data')//讀取的數據
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM