JavaScript - 邏輯符號

JavaScript邏輯符號
符號 說明
&& And運算
|| Or運算
! Not運算

JavaScript - 比較符號

JavaScript比較符號
符號 說明
== 等於
!= 不等於
> 大於
< 小於
>= 大於等於
<= 小於等於
=== 絕對等於
!== 絕對不等於


雙等號運算子(等於)會進行型態強制轉換,假如比較的資料型態不一樣,有時結果會相當有趣,例如,1 == true會得true。要避免型態強制轉換,要用三等號運算子(絕對等於),例如,1 === true會得false。還有一個!==(絕對不等於)運算子。

JavaScript - 保留字

JavaScript保留字
保留字
abstract
boolean
byte
char
class
const
debugger
double
enum
export
extends
final
float
goto
implements
import
int
interface
long
native
package
private
protected
public
short
static
super
synchronized
throws
transient
volatile

保留字一般較少使用,在物件導向程式設計中使用率比較高

JavaScript - 關鍵字(Key Word)

JavaScript關鍵字
關鍵字
break
case
catch
continue
default
delete
do
else
finally
for
function
if
in
instanceof
new
return
switch
this
throw
try
typeof
var
void
while
with

JavaScript - 資料型別(data type)

JavaScript資料型別
型別 說明
未定義(undefined) 某段資料未初始化,或沒有值
空(null)
布林(boolean) true(成立)與false(不成立)
字串(string) 文字(text)資料只是一串字元,通常出現在單/雙引號之間
數值(number) 數字資料
物件(object)
參考(reference)
列表(list)
完成(completion)

布林、字串、數值是我們在撰寫JavaScript時最常使用的三個資料型別。參考、列表、完成為JavaScript執行中間結果的資料型別,不能在程式碼中使用。

JavaScript會在你設定資料時,自動判定型別,自動指定,我們無法在設定變數時設定資料型別。

JavaScript - 變數

  • 變數是透過var關鍵字來宣告,是記憶體裡獨一無二名稱(unique name)的存儲位置(storage location)。
  • 變數在使用之前都應宣告(雖然不宣告也能使用)。
  • 未宣告的變數,會自動建立為全域變數(在函式內也一樣),並初始化為指定的值。
  • 同一變數應該只儲存一種資料型別,建立一個有初始值的變數,是種好習慣。

變數命名

  • 字首必是英文字母、底線(_)或$符號
  • 其他可以是英文字母、底線(_)、數字、$符號
  • 變數不能是關鍵字或保留字

變數命名規則

Camel
首字母小寫,其他單字字首大寫,例如:studentName, classNumber,用於變數和函式。
Pascal
首字母大寫 例如,FirstName, LastName,用於物件。
匈牙利
改良Pascal,在變數前加上(一個或一組)小寫字母來說明變數的型別,例如,i代表Integer,s代表String,int代表Integer,str代表String…等。
匈牙利命名法
型別 範例 縮寫
陣列 a / arr aStudents
布林 b /bln bSex
浮點數 f fTax
函數 fn fnSwap
整數 i / int iAge
物件 o / obj oCar
正規式 re / reg reID
字串 s / str sName

常數

  • 常數用來建立一個不會改變的值,除了修改JavaScript原始碼之外
  • 常數透過const關鍵字來宣告
  • 常數習慣以「全大寫字母」來命名,例如,const TAXRATE = .5;
  • const關鍵字最近才加入JavaScript,使用前請多檢查。Internet Explorer到目前都還不支援(IE8)

變數初始化

初始化背後的概念,在於避免存取沒有存入值的變數,如果宣告時還不知變數值,可先使用「什麼都沒有」來當值,減低存取未初始化變數的風險。
  • "",空字串
    var name="";
  • 0,數值
    var price=0;
  • false,布林
    var Select=false;

變數範圍(scope)

scope掌控變數的生命週期,還有程式碼是否可以存取變數。
  1. 區域變數(Local Variables)
    在函數內宣告的變數,存在於函式執行時,只能在函式內的程式區塊使用。
  2. 全域變數(Global Variables)
    變數在函數外宣告,整個JavaScript程式的函數和程式碼都可以存取。

JavaScript - ECMAScript語法

  1. 區分大小寫
  2. 弱型別變數
  3. 定義變數只用"var"關鍵字,並可以初始化為任意的值
  4. 每行結尾的分號(;)可有可無
    在新版Browser中,不加分號會有問題
  5. 括孤{ }用區程式碼區塊
  6. 註解
    單行註解:使用雙斜線(// 單行註解內容)
    多行註解:使用 /* 多行註解內容 */
    // 這是單行註解
    /* 這是
       多行
       註解
    */
    

JavaScript - Web標準

將網頁分離為三個部份,結構、表現、行為。

Structure, 結構

(X)HTML

傳統HTML的缺點:
  1. 維護困難
    為了修改某個標記格式,需要花費很多時間,越後期的修改、維護成本越高
  2. 標記不足
    HTML本身標記不足,HTML本身標記都是內容服務使用,關於美工、排版根本很少或沒有支援
  3. 網頁過胖
    傳統網頁除了包含HTML外,還加上CSS、JavaScript,最後還會加上動態程式語言,除了維護困難,頁面往往過於胖大,浪費許多頻寬。定位困難HTML在定位時就顯得捉襟見肘,過多的<table>也導致頁面的複雜和後期維護的困難

Presentation, 表現

CSS

Behavior, 行為

JavaScript

對網站瀏覽者的好處

  1. 檔案下載、頁面顯示更快
  2. 內容能被更多使用者訪問(含殘障人士)
  3. 內容能被更多設備訪問(PDA、智慧手機…)
  4. 使用者能透過CSS選擇自己介面風格
  5. 由CSS提供適合列印版本
  6. 對網站開發者的好處
  7. 更少的程式碼
  8. 更容易維護
  9. 頻寬要求更低
    例如ESPN.com使用CSS改版,每天節約超過2TB的頻寬
  10. 更容易被搜尋引擎接受,及更高的排名
  11. 改版方便(結構、表現、行為分離)
  12. 提高網站易用性

JavaScript - JavaScript簡介

ECMAScript(262)

ECMAScript定義了指令碼語言的所有語法、類型、語句、關鍵字、保留字、運算子和物件等,其他語言可以實現ECMAScript來作為功能基礎,JavaScript就是其中之一。

ECMAScript

  1. JavaScript
  2. ActionScript
  3. ScriptEase

BOM

Browser Object Model

BOM提供Web開發者移動視窗、改變狀態列…一些與網頁內容無關的動作。

DOM

Document Object Model

一種與瀏覽器、平台、語言無關的介面,DOM把整個網頁標籤轉換成節點樹架構的文件。

資訊安全 - 免費線上掃毒網站整理

同事電腦越跑越慢,問我有沒有線上掃瞄病毒網站,以下順便整理。

如果你只使用免費版的防毒軟體,例如,我使用很久的avast,但又常上一些怪怪網站(或喜歡逛來逛去),有類似不正常的動作…反正感到不對勁,可以利用以下任何一家提供的服務來「健康檢查」一下,以之前的使用經驗,都還不錯。

談情說愛 - 那些年,我們一起追的女孩

在公司尾牙加出遊的日子,在Bus上看了之前很熱門的國片「那些年,我們一起追過女孩」。此片有兩個重點:

  1. 幼稚
  2. 告白
此片很成功的地方是喚回我們從前的回憶。好看,但感覺普普。因為我的愛情故事不比他的差,我沒有九把刀的文筆,所以好看。內容沒有我與婆婆的故事精彩,所以感覺普普。

我也幼稚,我也吵架,我也分手,更重要的是:我告白。

電影或許好看的地方是在有遺憾。反應至真實人生,或許票房大賣長紅,就是因為太多人有那遺憾。一段好玩的愛情故事,一定要有狐群狗黨,我故事的差異點在於,我的這群朋友是一群人幫我追婆婆。

幼稚沒關係,但要學會長大,當主角最後Kiss了,其實,主角已經長大,只是成長的時間點太晚。第一次的開口告白,那是我永遠記得的事,我是個非常非常內向的男孩,那句話卡在心胸裡,是這輩子最難說出口的話,還好,我用了這輩子最大的勇氣,說出那句人生最重要的一句話。

電影主角追了多久,我不知道。我,追了走了十四年才把婆婆娶進門。不過,婆婆常說:「為什麼我們倆的感情還是像初戀一樣。」我想,那才是男人的終極夢想。

有些話,說了,後悔一輩子;
有些話,不說,一輩子後悔。

Blogger - 自動切換至版面特效集合

昨天發現,原來Blogger有一些版面特效集合,只需要透過連結即可使用。


只需要透過上述任何連結進入後,能簡易切換至其住特效。還不錯玩,特此記錄一下。

補充一下:Flipcard裡的Label效果我覺得不錯,很簡單直覺就找出相關分類的資料。

2012 A Best Present "Microsoft MVP Award"

我只是一個平凡人,如果我能,你也能。by KKBruce
首先,我一定要感謝我最愛的家人們,不管什麼時候、什麼事,你們都永遠支持我。再來感謝所有幫助過我的人,因為有你們的表率,讓我有學習的對象,讓我有機會成為一位Microsoft MVP。

2012年最棒的一份新年禮物,那就是我當選2012年 Microsoft MVP

KKBruce Microsoft MVP獎項
圖一:Microsoft MVP獎項
KKBruce 2012 Microsoft MVP獎盃
圖二:2012 Microsoft MVP獎盃

Microsoft MVP得獎感言

我不知道,我是不是很「感覺」的人?為什麼說很感覺呢?從開啟這個KingKong Bruce記事已經快滿5年的時間,除了一些在生活上的感想外,主要有很大一部分是以技術為主的文章內容,在學習這些以Microsoft為主的技術路上,常常覺得這些Microsoft MVP對於技術出神入化,只有嘆為觀止可以形容,常常有那種抬頭看天的感覺,人就是那麼奇怪,想追求平凡又不甘於平凡,我給自己一個夢想,想像有一天我也能成為一位Microsoft MVP

從有那個夢開始,我慢慢觀察網路上這些Microsoft MVP,我發現我錯了,這些Microsoft MVP們除有擁有技術外,更重要的是有一顆幫助別人的心,你很難想像,一位未曾謀面Microsoft MVP,使用MSN從頭到尾只和你聊"程式",有空還會問你說,最近還有沒有什麼新鮮貨(新文章),害得我想不長進都不行。

還有,當你看到突然有Microsoft MVP跑來你的Blog上指導時,我心想,我只是個無名小卒,怎會讓這些大腳、起大腳(台)的Microsoft MVP願意來我的Blog上指導我,意外之外,我了解到技術非第一,還是那句「有一顆助人的心」。

去年年底,不知道為什麼,我很想、非常想、超級想試試看去申請Microsoft MVP,我就在MSN上問Allen大大一些關於Microsoft MVP資格問題,原來申請Microsoft MVP有二種方式:
  • 毛遂自薦
  • 他人推薦
我是自己寫信去 mvpga@microsoft.com 要申請表格來填寫,不過好玩的事是幾天後,我在Plurk上收到一則私人息訊,發訊者是現任Microsoft MVP 91哥,他問我要不要去申請Microsoft MVP,我又嚇到了,這些Microsoft MVP的通靈能力也太強了吧!我又沒和任何人提過我想申請Microsoft MVP,感謝之餘,更讓我確定要去申請這個Microsoft MVP獎項。

在我寄送出申請表格之後的幾週後,有一天我的E-Mail裡寄來一封信,怎麼是Microsoft MVP的申請表格,一看,原來是我的老師MISLab2000寄來的,我很不意思說我已經寄出申請表格了,不過我心想,看來我的感覺是對的,就是這一次。

身體健康最重要

我要在得獎感言最後寫得病的心路歷程。可以得這個獎,我還感謝我的病「甲狀腺機能亢進」。

約半年多前的幾個月,我變成了超人,因為經常性失眠,這個失眠不是睡不著,而是睡一下下就睡飽了,天未亮雞未啼人已起,起來沒事做,就坐在電腦前看看資料、寫寫文章,所以今年文章的產量非常不錯。

因為平常坐得久,都有在小心控制飲食,就在發病的那一個月裡,我突然廋了十三公斤之多,我才在想怎麼這個月的效果超好,可以把心得拿來出書賺點奶粉錢,就在幾天後的早上,我帶著小花去散步,才走沒多久就覺得不舒服,回到家已經是臉色慘白加喘不過氣。

那個月的平均心跳在140上下,常常感到累而就在我家地板上睡著,選擇在地板上睡是因為很熱,心跳快加上新陳代謝也快,所以那一二個月的時間,我都無法在床上睡覺,醫生說,我那時的新陳代謝就算坐著不動,也是平常人的三~四倍,難怪會廋那麼快。

這讓我想到一位Visual Basic的前輩王國榮,我們那個年代,大概學Visual Basic的沒有一位不拜讀他的作品,後來好像生病引退了。

追求不平凡,要有健康的身體。

申請Microsoft MVP參考資料

  1. 什麼是微軟最有價值專家?
  2. 申請Microsoft MVP報名表
  3. Microsoft MVP常見問題集

金剛帶小孩 - 放手,讓她長大吧

正式為各位介紹家中的兩位寶貝,第一位Happy;第二位Love。中文姓名呢?每個聽過她們兩名子的人都會說:好特別的名子,而且好好記。第二句一定會接著問:給人家算的嗎?這時他們的爸爸就要深吸一口氣,然後用半微笑的臉說:「我自己取得!」。

名子的問題,我在《命運?運命?》就已經討論過了。她們的名子,每個人都我用了半年的時間去找、去看、去想。

我的孩子已經長大到非常獨立的程度,所謂的獨立是他們在一些日常生活事情上的自理能力非常的強,人家都會問我們說,怎麼辦到的,一是要求《見:要求,也是教育其中的一環》,二是放手

金剛帶小孩 - 還好我有二個女兒

Where are you?
圖一:Where are you?

我們家的兩個寶貝長的很像,每次帶出門看到的人都會問:是雙胞胎嗎?或是帶其中一個出門,看到的人都會說:弟弟好可愛,眼睛好大。明明我們全身穿粉紅色的衣服,還弟弟。因為這樣的問題,我們被問到麻痺了,我和婆婆已經都懶的回答。

寶貝長大一些後,最常見的問題第一名換成:「要不要再生一個呀?」開什麼玩笑,當生小孩是遊戲嗎?我非常滿足老天給我二位女兒,我完完全全沒有任何想生兒子的想法,有的話是婆婆比較想,婆婆有時還會問我說,會不會後悔沒生到兒子?說真話,完全不會。

孩子就是孩子,在我眼中沒有男孩女孩之分,生小孩不是拿來分男女,生小孩不是"爽"過之後的結果,而是想要一個家,想要一個充滿笑聲的家,想要教育她成為一個有用的人。

老二還小時,其實看不出生一個與生二個的差別,當老二現在已經開始學講話,開始和姊姊一起進行一些活動時,我才了解"二"這個數字是多重要。