var square = function(x) {return x*x}
expression . identifier
expression [ identifier ]
判斷左側屬性值是否存在右側的物件裡
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
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 --> 判斷有無索引存在
判斷左邊的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)
x==0 && y==0 // 當兩邊都為true才會回傳true,除此之外return false
var x = 1, y=2;
x && NaN // return NaN
x && undefined // return undefined
null && x // return null
var x=5,y=6;
x && j // return 6
可拿來當判斷執行條件
if (a==b){ stop(); }
// 等同於
a==b && stop();
A||B執行OR運算有其中一個為真值或兩個都為真值,則回傳真值。
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;
}
return 型別
typeof undefined // return "undefined"
typeof NaN // return number
typeof "test" // return String
typeof null // return Object