JavaScript

林品儒

2015/10/5

今日重點

程式概念

哈囉沃得

變數與型別

程式概念

程式是啥米

向電腦發出指令使其服從操作

給電腦看?

給人類看?

程式執行

編輯:Edit -> 原始碼

編譯:Compile -> 目的檔

組譯:Assemble -> 機械碼

連結:Link -> 執行檔

執行:Run

編譯x直譯x混合xJIT

編譯: 轉換成機械碼再執行

直譯: 一邊解讀程式碼一邊執行

混合: 轉換成機械碼再邊解讀機械碼邊執行

JIT: 先直譯,除非經常執行才編譯成機械碼

程式語言

高階語言

組合語言

機械語言

高階語言

  • Ruby/ Perl/ Python
  • JavaScript
  • C#/ C++/ Java

方便人類撰寫與開發

適合人類閱讀

不適合電腦閱讀

中階語言

C語言

和電腦的運行關連性較高

適合電腦閱讀

不適合人類閱讀

組合語言/機械語言

8d 74 26 00          	lea    0x0(%esi,%eiz,1),%esi
8b 54 24 28          	mov    0x28(%esp),%edx
89 44 24 04          	mov    %eax,0x4(%esp)
8b 44 24 20          	mov    0x20(%esp),%eax
89 54 24 08          	mov    %edx,0x8(%esp)
89 04 24             	mov    %eax,(%esp)
e8 38 06 00 00       	call   6b902250 <___mingw_TLScallback>
b8 01 00 00 00       	mov    $0x1,%eax
83 c4 1c             	add    $0x1c,%esp
c2 0c 00             	ret    $0xc
						

換湯不換藥

標記語言

  • HTML
  • XML
  • CSS

毫無反應,只是個標記語言

JavaScript

本名LiveScript

JavaScript之於Java就像HotDog之於Dog

"你會Java歐?那這個JavaScript的專案就交給你了"

JS

JavaScript可以簡稱JS

直譯式語言(V8:"哪有?")

提供網頁的互動效果

接下來

使用JS在瀏覽器進行操作

HollyWood

哈囉沃得

hello, world

初學者的第一個任務

輸出 "hello, world"

訊息視窗

alert(show_string)

顯示一個想要的字串

alert("hello, world")

那輸入呢?

prompt(hint_string)

顯示提示字串並提供輸入字串之功能

prompt("輸入貓有幾個耳朵:")

"2"

隱藏版輸出

console.log(secret_string)

輸出在瀏覽器的主控台

console.log("We human has to stick together!")

其實還是看得到啦

其他輸出

console提供了方便的功能

  • error(obj,...)
  • warn(obj,...)
  • info(obj,...)
  • dir(obj)

有些提供格式化字串輸出

格式化字串

%s: 字串

%d: 整數

%f: 浮點數

%c: 以指定CSS輸出到主控台

接下來

字串?整數?浮點數?

到底這些是啥米捏?

變數與型別

變數

一個名字對應著一個東西

重點A: 變數命名

重點B: 指派

重點C: 變數型態

變數命名

除了保留字其他都可以用

英文字大小寫,數字,_,$

var $dollar$sign$;

var _under_score_;

var 變數="Variable";

是時候惡搞變數名稱了

常數定義

就是不給你改

命名規則與常數相同

const INT3=0xCC

宣告為常數後就不是變數了

指派

利用 = 給予變數一個值

若變數沒有被指派則為undefined

當然也可以指派成undefined

變數型態

型態列表

  • 數字: Number
  • 字串: String
  • 布林: Boolean
  • 陣列: Array
  • 物件: Object
  • undefined,null,...

型別判斷

typeof

使用此運算子可以得知變數的型別

typeof(undefined);

typeof undefined ;

不確定就看一下吧~~

數字

Number

整數小數都是浮點數

8086, 6.02e23

0xCC, 0800, 0b1101

Infinity, NaN

字串

String

可以使用雙引號或單引號

'I love <><'

"I'm blind ,not deaf"

字串有方便的內建函式可以使用

跳脫字元

JS的跳脫和HTML不太一樣

單引號: \'

雙引號: \"

反斜線: \\

換行: \n

Tab: \t

布林

Boolean

條件判斷時使用

true, false

!!看風向不是那麼簡單低!!

真假值有另外的定義...

真假值

以下為假其他為真

  • false
  • null
  • undefined
  • 0
  • "",''
  • NaN

乖乖記起來吧...

陣列

Array

可以放入各種型態的東西

[], Array(num)

索引值從0開始,可為負

陣列操作

a=[1,2,3,4,5]

a[100]

a[-1]=200

a[1000000000]=true

以上操作都是合法的

物件

Object

以鍵(key)對應值(value)放入東西

{}, Object()

鍵可以為任何東西

物件操作

skill={name:'上野武勇'}

skill.name

skill['name']

skill[['R',4]]=[0.30,0.17]

skill.說明='打的更痛!呀呼!'

以上操作都是合法的

以上為JavaScript的基礎介紹

各位有問題否?