我們不一樣:位元運算
位元運算的 and、or、xor 與 not
這是對二進位做的位元運算
- and &: 位元運算;&& 是邏輯運算
- or |: 位元運算;|| 邏輯運算
- xor ^: inclusive or 不是 A 就是 B
- 判斷方式:兩個東西一樣,就回傳零;不一樣,就回傳一
- 這個符號 ^ 在 JS 裡面不是次方的意思
- not ~: 變二進位以後,每個數字都反轉,一變零,零變一這樣
什麼時候可以用到?
- 任一數字 and 1:
若該數字最後一位為 0,則答案為 0
若該數字最後一位為 1,則答案為 1 - 可以拿來判斷奇偶數:
x & 1 = 0,則 x 為偶數;x & 1 = 1,則 x 為奇數
放東西的箱子:變數
大聲告白:變數宣告與 undefined
變數 Variable:一個可以裝東西的箱子
var box = 123,這裡的等於是賦值的意思,就是給它一個數啦,把 123 給 box
在 JS 裡面,大小寫是有差別的喔
若是宣告一個變數,但是沒有賦予它值,就叫做 undefined
變數不可以用數字開頭取名,是不合法的(會被警察抓?)
變數名稱不可以取程式裡面已經有用到的代稱,例如 var var
可以這樣幫變數寶寶取名字:
camel case = ThisIsABox 駝峰式取名法
underscore = this_is_a_box
看你習慣哪一種,變數要好好取名字喔,最好從一開始就培養好這個觀念。如果你用 var a = 10,過一陣子你再回來看,就會忘記 a 是什麼了。(前天晚餐吃什麼都不記得了,當然不會記得 a 是什麼啊!)
安安,可以 ++ 嗎
- 一個變數也可以做操作:
var a = 0
a = a + 5
等號是賦值
a = a + 5 也簡化可以寫成 a += 5
a = a - 5 也簡化可以寫成 a -= 5
好神奇啊!
a ++ 就是 a + 1
a -- 就是 a - 1
var a = 0
console.log(a++ && 30)
把 ++ 放在 a 後面的話
程式碼就會先跑 console.log(a && 30)
接著再執行 a += 1 (也就是 a++ 啦)
var a = 0
console.log(++a && 30)
把 ++ 放在 a 前面的話
程式碼就會先跑 a += 1 (也還是 a++ 啦)
接著再執行 console.log(a && 30)
結論:++ 放前面就會先執行,放後面就會後執行。
- 其實很少會這樣用,會拆開兩行來寫,這樣比較清楚
console.log(a && 30)
a++
一樣米養百樣人:變數的各種型態
在 JS 裡面用 typeof 就可以知道型態是什麼
- Primitive:
- boolean: true, false
- number: 表示所有數字,不論小數或整數
- string: 用單引號或雙引號括起來的字串
typeof true boolean
typeof 10 number
typeof '10' string
- 另外三種:
- obnect
- undefined
- funcion
typeof [1] object: 對陣列做 typeof 會得到 object
typeof undefined undefined
typeof funcion funcion
typeof null object: 這裡比較特別,被認為是設計錯誤
今天強迫自己每看 25 分鐘的影片,就要休息 5 分鐘,方法是去窗邊唱一首歌。
意外看到助教以前的每日進度,感覺好有趣喔,有助教寫的笑話大集跟精美筆記可以看,原來 h0w 哥是真有其人,哈哈哈哈。
效率好低喔,昨天跟今天都是,進度都只有一點點,我想好好睡覺好了。