文章目錄
- Node開發概述
- Node是什么?
- Node.js的組成
- Node.js基礎語法
- Node資料型別
- Node.js全域物件global
Node開發概述
為什么要學習服務器端開發基礎:
- 能夠和后端程式員更加緊密的配合
- 網站業務邏輯前置,學習前端技術需要后端技術支撐(Ajax)
- 擴寬知識視野,站在更高的角度審視整個專案
服務器端開發要做的事情:實作網站的業務邏輯、資料的增刪改查
Node是什么?
Node是一個基于Chrome V8引擎的JavaScript代碼運行環境,
以前學的JS只能在客戶端運行,有了Node以后就可以在服務器運行,真正使JS成為一門程式設計語言
運行環境:
- 瀏覽器(軟體)能夠運行JavaScript代碼,瀏覽器就是JavaScript代碼的運行環境
- Node(軟體)能夠運行JavaScript代碼,Node就是JavaScript代碼的運行環境
Node.js特點:
-
非阻塞I/O:(Node核心)
- 又稱異步式I/O,是Node.js的重要特點 - 提高Node程式的執行效果 - 非阻塞:異步,阻塞:同步 -
事件驅動(Node核心)
-
單執行緒
- Node.js的應用程式是單執行緒、單行程,但通過事件和回呼支持并發,性能變得非常高 - 在非阻塞模式下,執行緒不會被I/O操作阻塞,該執行緒所使用的CPU核心利用率永遠是100%
Node.js的應用場合:
REST API(一種前后端分離的應用程式架構)、單頁Web應用、統一Web應用的UI層、準實時系統(如聊天系統、微博系統、博客系統的準實時社交系統,對系統的實時性要求不是很高)、游戲服務區(不必使用C語言就能開發游戲的服務器程式)、微服務架構
Node.js的組成
- JavaScript 由三部分組成,ECMAScript,DOM,BOM,
- Node.js是由ECMAScript及Node 環境提供的一些附加API組成的,包括檔案、網路、路徑等等一些更加強大的 API,

Node.js基礎語法
所有ECMAScript語法在Node環境中都可以使用,
在Node環境下執行代碼,使用Node命令執行后綴為.js的檔案即可

-
每條陳述句都以“;”結束(注:也可以沒有“;”)
-
一行可以有多條陳述句(注:若一行有多條陳述句,每條陳述句都要以“;”結束,建議一行只有一條陳述句)
-
若一行陳述句太長,可以用“****”進行續行
-
陳述句塊:由多條陳述句組成,這些陳述句都在“{ }”中
-
注釋:單行注釋:“
//”;多行注釋:“/*……*/
注:在WebStorm軟體中,單行注釋的快捷鍵:Ctrl+’/’;多行注釋的快捷鍵:Ctrl+shift+’/’ -
變數:
1)可以是任意的資料型別 2)變數名是字母、數字、下劃線("_")、‘$’組成的字符序列,但是==首字符不能是數字== 3)JavaScript是==弱型別語言==,在定義變數時不需要指定變數的型別,都可以使用關鍵字var宣告
var name = "郵電大學"
或
name = "郵電大學"
可以在宣告變數的同時賦值,也可以先宣告變數然后再賦值
var age;
age = 25
變數可以反復的賦值
var sex = '男';
sex = '女';
sex = 'male'
-
變數的提升:在ES5中變數可以在宣告之前使用,它的值是undefined
在ES6中使用let關鍵字宣告變數,變數不能在宣告之前使用 -
變數值的泄露:在陳述句塊中使用var關鍵字宣告的變數,會被提升為全域變數,這樣就會造成區域變數值的泄露,防止變數值的泄露方法是使用let關鍵字宣告區域變數
-
全域作用域和函式作用域:
1) ES5中作用域只有兩個: 全域作用域:從宣告的位置開始到源程式的結束均有效 函式作用域:只在函式范圍內有效 2) ES6中增加的塊級作用域:在ES6中使用let關鍵字宣告的變數只在它所在的塊級作用域中有效 -
ES6中使用const定義只讀常量
const PI = 3.1415926;
Node資料型別
-
Number:數值型別,不區分整數和浮點數
i. 二進制以0b開頭,八進制數以0o開頭,十六進制以0x開頭 ii. 若不能計算出結果顯示為NaN(Not a Number) -
String:字串,使用單引號或雙引號括起來的文本(字符序列)
i. ES6提供模板字串“:用戶反引號將模板字串括起來,用${ }將變數括起來 例如:
var host = 'http://localhost';
var port = 8080;
var url = `API介面為:${host}:${port}`;
console.log(url)
ii. 模板字串中可以不嵌入任何變數,按實際格式輸出
例如:
var str = `模板字串測驗:\n你的眼中明暗交雜一笑生花`;
console.log(str);
-
Boolean:布爾型,值只有兩個true、false
注意:在比較等于時,建議使用而不是 -
null和undefined的區別:
null:表示空值,即什么也沒有 undefined:表示‘未定義’,通常用于判斷函式的引數是否正常傳遞 -
Array:陣列
i. 陣列用[ ]表示,元素之間用逗號分隔 ii. 陣列元素可以是任意型別 iii. 通過陣列名帶索引訪問陣列元素,索引的范圍是0~陣列長度-1 -
object:物件
i. 用‘{ }’表示,是由鍵值對組成的無序集合,鍵值對之間用逗號分隔,‘鍵’就是物件的屬性 ii. 鍵的型別必須是字串型別,值可以是任意型別 iii. 通過‘物件名.屬性名(鍵名)’來訪問物件的屬性 iv. 在ES6中允許將運算式作為鍵名,但必須運算式必須放在‘[ ]’中 -
Symbol:符號,是ES6引入的新型別,用來表示一個獨一無二的值,這個值可以作為物件的屬性,表示方式有三種:
var temp = Symbol();
let obj = { }
obj[temp] = "值"
var temp = Symbol();
let obj = { [temp]:"值" }
let obj2 = {}
Object.defineProperty(obj2,k,{value: 'AAAAAAAAAA'})
console.log(obj2)
-
Set:集合,類似于陣列,集合中的成員的值不能重復,都是唯一的
i. Set函式可以接受一個陣列作為引數 例:
var arr = [5,2,7,5,2,5,8];
const s1 = new Set(arr);
console.log(s1)
ii. 屬性
constructor:建構式
size:表示集合的元素個數
例:
console.log(s1.constructor) //建構式
console.log(s1.size) //集合的元素個數
iii. 方法(函式):
add(x):將x添加到集合中
delete(x):洗掉集合中的x,回傳的是布林值
has(x):回傳布林值,表示x是否是集合的成員
clear():清除所有成員,沒有回傳值
Node.js全域物件global
在瀏覽器中全域物件是window,在Node中全域物件是global,
Node中全域物件下有以下方法,可以在任何地方使用,global可以省略,
| 方法 | 說明 |
|---|---|
| console.log() | 在控制臺中輸出 |
| setTimeout() | 設定超時定時器 |
| clearTimeout() | 清除超時時定時器 |
| setInterval() | 設定間歇定時器 |
| clearInterval() | 清除間歇定時器 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/291889.html
標籤:其他
下一篇:JS原生AJAX
