iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
0

function 運算式

var square = function(x) {return x*x}

屬性存取

expression . identifier
expression [ identifier ]

in

判斷左側屬性值是否存在右側的物件裡

  • object
var data = {x:1 ,y:2};
"x" in data; // return true
"z" in data; // return false
1 in data ; // return false --> 判斷屬性而非值
"toString" in point // return true

  • array
var data = [5,6,7];
"0" in data; // return true
1 in data; // return true
2 in data; // return true
3 in data ; // return false --> 判斷有無索引存在

instanceof

判斷左邊的object是否有存在於右邊的class裡(class裡可能有很多object)

var date = new Date();
date instanceof Date; // return true
date instanceof Object; // return true
date instanceof Number; // return false

in是判斷屬性是否在在物件裡
instanceof是判斷物件是否有在class裡(左側必須是物件,否則會return false)

AND (&&)

  • A && B (A、B都為boolean操作)
x==0 && y==0 // 當兩邊都為true才會回傳true,除此之外return false
  • 不一定return 都是true / false
var x = 1, y=2;
x && NaN // return NaN
x && undefined // return undefined
null && x // return null
  • A && B 如果A是是真值(不一定是true非undefined、null、0都可代表真值),則return B計算的值(不一定是true / false)
var x=5,y=6;
x && j // return 6

可拿來當判斷執行條件

if (a==b){ stop(); }
// 等同於
a==b && stop();

OR(||)

A||B執行OR運算有其中一個為真值或兩個都為真值,則回傳真值。

  • 與AND operator 操作有點類似
    當左側為真值時,回傳左側執行結果,若右側為假值。則回傳左側執行結果。
var max = max_width || preferences.max_width || 500 ;

!

執行反向運算。

!(a && b) === !a || !b
!(a || b) === !a && !b
// 上面兩個等式完全成立

運算後給值

a op= b
等同
a = a op b
若a帶有副作用運算則上述不成立

data[i++] *= 2;
// 不等於
data[i++] = data[i++] *2; 

?: 條件運算

x>0 ? true : false
// 等同
if (x > 0){ 
    return true;
}else{
    return false;
}

typeof

return 型別

typeof undefined // return "undefined"
typeof NaN // return number
typeof "test" // return String
typeof null // return Object

上一篇
Day 3: Datatypes and Values (Part 2)
下一篇
Day 5: 述句(Statements)
系列文
Javascript 犀牛本-濃縮再濃縮 提煉再提煉30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言