跳到主要內容

[鐵人賽] JS 基本解說,變數型別,宣告 - Node.js Day 6

JS 基本解說,變數型別,宣告

前言

前面已經有建立基本的 Node.js ,以及第一個基本範例,在開發 Node.js 之前,讓我們先建立 JavaScript 應該要知道的一些基本觀念。

本文開始

在進入 node.js 開發之前,還是必須要說, node.js 雖然稱為 node.js ,不過本質在開發上還是在寫 JavaScript。對於 JavaScript 的基本認知還是要有。

基本型態

JavaScript 有以下幾種基本型態。
  • Boolean
  • Number
  • String
  • null
  • undefined
變數宣告的方式,就是使用 var,結尾使用『;』,如果需要連續宣告變數,可以使用 『,』 做為連結符號。
// 宣告 x 為 123, 數字型態
var x=123;

// 宣告 a 為456, b 為 'abc' 字串型態
var a=456,
    b='abc';

布林值

布林,就只有兩種數值, true, false
var a=true,
    b=false;

數字型別

Number 數字型別,可以分為整數,浮點數兩種,
var a=123,
    b=123.456;

字串型別

字串,可以是一個字,或者是一連串的字,可以使用 ‘’ 或 “” 做為字串的值。
var a="a",
    a='abc';

運算子

基本介紹就是 +, -, *, /
邏輯運算就是 && (and), || (or), ^ (xor),
比較式就是 >, <, !=, !==, ==, ===, >=, <=

判斷式

這邊突然離題,加入判斷式來插花,判斷就是 if,整個架構就是,
if (判斷a) {
    // 判斷a 成立的話,執行此區域指令
} else if (判斷b) {
    // 判斷a 不成立,但是 判斷b 成立,執行此區域指令
} else {
    // 其餘的事情在這邊處理
}
整體架構就如上面描述,非 a 即 b的狀態,會掉進去任何一個區域裡面。
整體的判斷能夠成立,只要判斷轉型成 Boolean 之後為 true,就會成立。
大家可以這樣子測試,
Boolean(判斷);

應用

會突然講 if 判斷式,因為,前面有提到 Number, String 兩種型態,但是如果我們測試一下,新增一個 test.js
var a=123,
    b='123';

if (a == b) {
    console.log('ok');
}
編輯 test.js 完成之後,執行底下指令
node test.js
// print: ok
輸出結果為 ok。
這個結果是有點迥異, a 為 Number, b 為 String 型態,兩者相比較,應該是為 false 才對,到底發生什麼事情?
這其中原因是,在判斷式中使用了 == , JavaScript 編譯器,會自動去轉換變數型態,再進行比對,因此 a == b 就會成立,如果不希望轉型產生,就必須要使用 === 做為判斷。
if (a === b) {
    console.log('ok);
} else {
    console.log('not ok');
}
// print: not ok

轉型

如果今天需要將字串,轉換成 Number 的時候,可以使用 parseInt, parseFloat 的方法來進行轉換,
var a='123';

console.log(typeof parseInt(a, 10));
使用 typeof 方法取得資料經過轉換後的結果,會取得,
number
要注意的是,記得 parseInt 後面要加上進位符號,以免造成遺憾,在這邊使用的是 10 進位。

後記

在本篇中,先講解變數的宣告,以及 Boolean, Number, String 幾種形態,以及 if 判斷式怎麼使用,在 JavaScript 這種弱型態的語言當中,有些時候會因為自動轉型造成 debug 的麻煩,因此也稍微提到在實際開發可能會遇到的問題。
前面基本型態有提到 null, undefined ,明天我們繼續聊聊這兩種在 JavaScript 型別中,難以判定的型態。

留言

這個網誌中的熱門文章

[分享] 腳踏車環島注意事項

很多人都期望自己能夠做點什麼,做些什麼,而退伍之後的第二個星期,就展開了環島之旅。 對很多人來說這不算什麼,甚至有人展開了走路、跑步、溜滑板、單輪車等方式環島一周,充分展現對台灣的愛與關懷。 這篇主要讓不知道怎麼準備環島的人,作一個完善的解說,首先隨身的東西要有: 證件現金類 : 身份證 健保卡 學生證 現金 提款卡 悠遊卡

館長的網站技術瓶頸,小弟弟來解答 - notorious-2019.com

館長的網站技術瓶頸,小弟弟來解答 - notorious-2019.com 昨天看到館長的網站倒了,也看到館長說一個月花費大概一百萬左右的月費在支持這個架設的電商網站,也對外發布出來訊息,希望求救, 直接講結論 建議解法, 1. 首先要做的事情是讓整個網站可以橫向擴展 (Load Balancer + n 台伺服器),對,相信我,IIS 也是可以做 Scale out, 這是對於 Application layer 服務的解法。 2. 資料的部分 SQL 吞吐量,建議改成 GCP Cloud SQL, 或者就直接轉到 Azure SQL Server 環境上會相對容易解決 SQL 的問題。 上述 2 個步驟都處理完,其實 100 萬的費用,應該 20000 concurrent user 是沒有問題的,但前提是要設定『對』! 額外需要花較長期時間要處理的,建議就是在 Queue 的處理,購物車的狀態都可以進入到 Queue 再來處理 SQL insert 的問題,減少不斷的 insert / update 的狀態,後文會提到 ... 底下詳細的會再說明如何後後續還有哪些處理的細節。 這兩天剛好有個小空擋,就來分析一下狀況, 可以從外部讀取得到的服務大致上如下, ASP.Net : 4.0 IIS 10 + Windows (廢話) SQL Server (推測) OP Service: PleskWin Host: Google Cloud DNS: Cloudflare 前端服務內容架構 Server-side render, jQuery base, 推測有可能採用現成購物車來進行,看起來不太像是用 wooCommerce 比較像是 Cart Functionality 這類的項目直接搭建而成(當然這純屬猜測) 功能拆解 因為網站是透過 Server site render 所有頁面都需要重新透過伺服器進行載入,這樣的狀況,如果在頻繁忙碌的 eCommerce 網站架構下會是一個致命傷, 簡單來說,數量的查詢,特惠價,優惠碼等等資訊的處理,使用者每做一步都需要重新跳轉頁面,或者整頁面重新讀取,只是為了部分的資料更新,這些都可以抽取出來成為 API ,透過 AJAX 的方式進行讀取。 讀寫分離 在不了解目前資料庫複雜狀態下,首先要讓所有人都

[教學] 快快樂樂刪除CodeIgniter index.php

預設的CI網址預設都設定為index.php同一層級,因此所有的程式都必須指定index.php導向才能開始,例如 http://localhost/ci/index.php/welcome/test http://localhost/ci/welcome/test 本文將說明如何將惱人的index.php消除,還你一個漂亮的URL。 設定開始: 接下來說明如何使用rewrite方式將惱人的index.php去除。 rewrite不清楚的人,煩請先自行google 首先要先確定Apache的 mod_rewrite 有 開啟 ,如果沒有開啟請設定好之後重新啟動apache。 接著,在根目錄底下建立一個新檔案,檔名為 .htaccess ,裡面程式碼如下: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule> 接著到 application/config/config.php ,開啟檔案修改 $config['index_page'] = ""; 注意: /index.php/$1 要根據你目錄,例如 http://localhost/index.php ,網站根目錄為 /ci/index.php 則要寫成 /ci/index.php/$1 接著至CI目錄下,尋找 config\config.php , 修改一下裡面的檔案,修改如下: $config['index_page'] = ""; 存檔後,如此一來大功告成。 參考資料 官方網站說明