1.2
"hello"
保留字
true
flase
null
this
變量
i
num
var arr = []
var p = {};
注意:JavaScript對數(shù)組初始化表達(dá)式和對象初始化表達(dá)式求值的時候,數(shù)組初始化表達(dá)式和對象初始化表達(dá)式的元素表達(dá)式也都會各自計算一次。也就是說,元素表達(dá)式每次計算的值有可能是不同的。var f = function(){}
1.4屬性訪問表達(dá)式var arr =[1];
var p = {x:1}
arr[0]
p.x
注意:在“.”和“[”之前的表達(dá)式總是會首先計算,如果計算結(jié)果是null或undefined,表達(dá)式會拋出一個類型錯誤異常,因為這兩個值都不能包含任何屬性。f()
a.sort()
1.6對象創(chuàng)建表達(dá)式new Object()
加法運算符(Addition):x + y
減法運算符(Subtraction): x - y
乘法運算符(Multiplication): x * y
除法運算符(Division):x / y
余數(shù)運算符(Remainder):x % y
自增運算符(Increment):++x 或者 x++
自減運算符(Decrement):--x 或者 x--
數(shù)值運算符(Convert to number): +x
負(fù)數(shù)值運算符(Negate):-x
1 + 2 //3
'hello' + ' world' //hello world
加法運算符的行為表現(xiàn)為:
++a;
后增量a++;
var a = 1;
a++; // 1
++a; // 2
var a = 3;
a--; //3
--a; //2
== 相等
=== 嚴(yán)格相等
!= 不相等
!== 嚴(yán)格不相等
< 小于
<= 小于或等于
> 大于
>= 大于或等于
相等和不等運算符小于(<)
大于(>)
小于等于(<=)
大于等于(>=)
3.2邏輯表達(dá)式true && 1; //1
'' && 'f' //""
邏輯或(||)
或運算符(||)的運算規(guī)則是:如果第一個運算子的布爾值為true,則返回第一個運算子的值,且不再對第二個運算子求值;如果第一個運算子的布爾值為false,則返回第二個運算子的值。'a' || '' // "a"
'' || 'a' //"a"
邏輯非(!)
取反運算符形式上是一個感嘆號,用于將布爾值變?yōu)橄喾粗?,即true變成false,false變成true。!true; //false
!false; //true
對于非布爾值的數(shù)據(jù),取反運算符會自動將其轉(zhuǎn)為布爾值。規(guī)則是,以下六個值取反后為true,其他值取反后都為false。undefined
null
false
0(包括+0和-0)
NaN
空字符串('')
3.3.賦值表達(dá)式x += y // 等同于 x = x + y
x -= y // 等同于 x = x - y
x *= y // 等同于 x = x * y
x /= y // 等同于 x = x / y
x %= y // 等同于 x = x % y
x >>= y // 等同于 x = x >> y
x <<= y // 等同于 x = x << y
x >>>= y // 等同于 x = x >>> y
x &= y // 等同于 x = x & y
x |= y // 等同于 x = x | y
x ^= y // 等同于 x = x ^ y
或運算(or):符號為|,表示若兩個二進(jìn)制位都為0,則結(jié)果為0,否則為1。
與運算(and):符號為&,表示若兩個二進(jìn)制位都為1,則結(jié)果為1,否則為0。
否運算(not):符號為~,表示對一個二進(jìn)制位取反。
異或運算(xor):符號為^,表示若兩個二進(jìn)制位不相同,則結(jié)果為1,否則為0。
左移運算(left shift):符號為<<。
右移運算(right shift):符號為>>。
帶符號位的右移運算(zero filled right shift):符號為>>>
有一點需要特別注意,位運算符只對整數(shù)起作用,如果一個運算子不是整數(shù),會自動轉(zhuǎn)為整數(shù)后再執(zhí)行。
var o = {x:1};
"x" in o //true
var a = new Array();
a instanceof Object; //true
x>0 ? x : -x; //求x的絕對值
typeof 1 // 'number'
var o={x:1}
delete o.x;
"x" in o //false
void 0 //undefined
void(0) //undefined
var a = 1;
void (a=2);
a //2
<a href="javascript:void(0)"></a>
'a','b' //"b"
var a = 0;
var b = (a++,5);
a //1
b //5
更多建議: