Skip to content

Commit 5d2f2a9

Browse files
author
caesar_chi
committed
add js basic part
1 parent f6281af commit 5d2f2a9

File tree

3 files changed

+127
-1
lines changed

3 files changed

+127
-1
lines changed

SUMMARY.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@
33
一本屬於繁體中文,從華人自身發起給予『Node.js 新手的學習手冊』,藉由實際動手開發的過程中,讓大家了解到 Node.js 開發有趣之處。
44

55
* [Node.js 介紹](intro/nodejs.md)
6-
* [Node.js 安裝](install/installNode.md)
6+
* [Node.js 安裝]
77
* [Node.js 安裝](install/installNode.md)
88
* [Node.js Windows 安裝](install/installWindowsNode.md)
99
* [Node.js MacOS 安裝](install/installMacOSNode.md)
1010
* [Node.js Linux 安裝](install/installLinuxNode.md)
1111
* [Node.js NVM 安裝](install/installNvmNode.md)
1212
* [Node.js 線上測試環境](install/onlineEnv.md)
13+
* JavaScript 介紹
14+
* [JavaScript 介紹](javascript_tour/introjs.md)
15+
* [JavaScript 變數型別,宣告](javascript_tour/variablejs.md)
1316
* [實戰範例](install/installNode.md)
1417
* [如何使用範例程式?](example/howto.md)

javascript_tour/introjs.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#JavaScript 介紹
2+
3+
在閱讀此章節之前,請先拋開以往在瀏覽器編輯 JavaScript 的經驗,從現在起將討論是的 JavaScript 本質部份,會從 JavaScript 的變數、陣列、迴圈、函式、類別開始介紹,當中會使用到許多方法,只有在 Node.js 才會看到的方法,所以請記住我先前所說的,拋開以往對於瀏覽器的觀念,在這裡已經沒有瀏覽器的存在。
4+
5+
畢竟在 Node.js 的程式開發中,目前還是使用 JavaScript ,就算全面改用 CoffeeScript, TypeScript,本質上還是回到 JavaSCript 身為一個技術書籍來說,就是教大家最基本的東西,從中體驗 Node.js 開發,請好好的重新體會 JS 的好。
6+
7+
首先會先從 JS 的基本型態開始講起,從 JS 擁有哪些型態,用什麼方式宣告,一開始該怎麼寫,繼續講到 Array 怎麼宣告,其中有哪些方法,可以讓陣列 iterateor 完成自的使命。
8+
Closure ,在大陸名詞翻譯為閉包,這在 JS 裡面是個有趣的議題,關係到 js 變數生命週期,當然這也是個很重要的概念釐清。
9+
10+
接著開始講解 Class, 什麼是類別,什麼是 function ,一個 function 怎麼生成 Class。當然談到這邊就會同時提到 JS Class 最特別東西, this,大多數的開發者都會與 Java 的 this 混淆,這邊將為各位做個釐清。
11+
12+
能夠建立 Class 之後,就不得不講到 js 其中一種特性,prototype ,這到底是什麼,為什麼會有 prototype ,在這邊會有許多 Class 邊際效應的開發討論。
13+
14+
JavaScript 基本特性經過了解後,再進入 Node.js 的世界,才會比較容易了解 Node.js 開發。

javascript_tour/variablejs.md

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
#JS 基本解說,變數型別,宣告
2+
3+
在進入 node.js 開發之前,還是必須要說, node.js 雖然稱為 node.js ,不過本質在開發上還是在寫 JavaScript。對於 JavaScript 的基本認知還是要有。
4+
##基本型態
5+
6+
JavaScript 有以下幾種基本型態。
7+
8+
* Boolean
9+
* Number
10+
* String
11+
* null
12+
* undefined
13+
14+
變數宣告的方式,就是使用 var,結尾使用『;』,如果需要連續宣告變數,可以使用 『,』 做為連結符號。
15+
16+
// 宣告 x 為 123, 數字型態
17+
var x=123;
18+
19+
// 宣告 a 為456, b 為 'abc' 字串型態
20+
var a=456,
21+
b='abc';
22+
23+
##布林值
24+
25+
布林,就只有兩種數值, true, false
26+
27+
var a=true,
28+
b=false;
29+
30+
##數字型別
31+
32+
Number 數字型別,可以分為整數,浮點數兩種,
33+
34+
var a=123,
35+
b=123.456;
36+
37+
##字串型別
38+
39+
字串,可以是一個字,或者是一連串的字,可以使用 ‘’ 或 “” 做為字串的值。
40+
var a="a",
41+
a='abc';
42+
43+
##運算子
44+
45+
基本介紹就是 +, -, *, /
46+
邏輯運算就是 && (and), || (or), ^ (xor),
47+
比較式就是 >, <, !=, !==, ==, ===, >=, <=
48+
49+
##判斷式
50+
51+
這邊突然離題,加入判斷式來插花,判斷就是 if,整個架構就是,
52+
53+
if (判斷a) {
54+
// 判斷a 成立的話,執行此區域指令
55+
} else if (判斷b) {
56+
// 判斷a 不成立,但是 判斷b 成立,執行此區域指令
57+
} else {
58+
// 其餘的事情在這邊處理
59+
}
60+
61+
整體架構就如上面描述,非 a 即 b的狀態,會掉進去任何一個區域裡面。
62+
整體的判斷能夠成立,只要判斷轉型成 Boolean 之後為 true,就會成立。
63+
大家可以這樣子測試,
64+
65+
Boolean(判斷);
66+
67+
##應用
68+
69+
會突然講 if 判斷式,因為,前面有提到 Number, String 兩種型態,但是如果我們測試一下,新增一個 test.js
70+
71+
var a=123,
72+
b='123';
73+
74+
if (a == b) {
75+
console.log('ok');
76+
}
77+
78+
編輯 test.js 完成之後,執行底下指令
79+
80+
node test.js
81+
// print: ok
82+
83+
輸出結果為 ok。
84+
這個結果是有點迥異, a 為 Number, b 為 String 型態,兩者相比較,應該是為 false 才對,到底發生什麼事情?
85+
這其中原因是,在判斷式中使用了 == , JavaScript 編譯器,會自動去轉換變數型態,再進行比對,因此 a == b 就會成立,如果不希望轉型產生,就必須要使用 === 做為判斷。
86+
87+
if (a === b) {
88+
console.log('ok);
89+
} else {
90+
console.log('not ok');
91+
}
92+
// print: not ok
93+
94+
##轉型
95+
96+
如果今天需要將字串,轉換成 Number 的時候,可以使用 parseInt, parseFloat 的方法來進行轉換,
97+
98+
var a='123';
99+
100+
console.log(typeof parseInt(a, 10));
101+
102+
使用 typeof 方法取得資料經過轉換後的結果,會取得,
103+
104+
##number
105+
106+
要注意的是,記得 parseInt 後面要加上進位符號,以免造成遺憾,在這邊使用的是 10 進位。
107+
108+
在本篇中,先講解變數的宣告,以及 Boolean, Number, String 幾種形態,以及 if 判斷式怎麼使用,在 JavaScript 這種弱型態的語言當中,有些時候會因為自動轉型造成 debug 的麻煩,因此也稍微提到在實際開發可能會遇到的問題。
109+
前面基本型態有提到 null, undefined ,明天我們繼續聊聊這兩種在 JavaScript 型別中,難以判定的型態。

0 commit comments

Comments
 (0)