[MTR04] W2 D2 位元運算和 JS 基礎:變數


Posted by Christy on 2020-06-18

我們不一樣:位元運算

位元運算的 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 就可以知道型態是什麼

  1. Primitive:
    1. boolean: true, false
    2. number: 表示所有數字,不論小數或整數
    3. string: 用單引號或雙引號括起來的字串
typeof true boolean
typeof 10 number
typeof '10' string
  1. 另外三種:
    1. obnect
    2. undefined
    3. funcion
typeof [1] object: 對陣列做 typeof 會得到 object
typeof undefined undefined
typeof funcion funcion
typeof null object: 這裡比較特別,被認為是設計錯誤

今天強迫自己每看 25 分鐘的影片,就要休息 5 分鐘,方法是去窗邊唱一首歌。

意外看到助教以前的每日進度,感覺好有趣喔,有助教寫的笑話大集跟精美筆記可以看,原來 h0w 哥是真有其人,哈哈哈哈。

效率好低喔,昨天跟今天都是,進度都只有一點點,我想好好睡覺好了。










Related Posts

滲透測試重新打底(8)--Windows 提權手法

滲透測試重新打底(8)--Windows 提權手法

v-if / v-else 使用細節

v-if / v-else 使用細節

Web Component 實戰

Web Component 實戰


Comments