算術運算子
運算子是加號
算術運算子的優先順序
比較運算子
等於、不等於、絕對等於(```===```)和絕對不等於(```!==```)
!. 當訪問物件的屬性時:如果該屬性不存在時,則訪問結果為:undefined
2. 當訪問物件的屬性時:如果該物件不存在時,則訪問結果則會出錯。
分析:
1.這裡的a雖然進行了宣告,但充其量是乙個原始類性的資料,而原始型別的變數是不可能有屬性的,因此報錯2.輸出obj的屬性不會報錯,是因為它是乙個物件,只不過是乙個沒有任何屬性的空物件,但是物件時可以擁有屬性的,只不過是人家沒有賦值,因此結果是 undefined
商的正負與被除數和除數的正負有關如果被除數是正數,得到結果infinity(正無窮)餘數的符號僅僅與被除數有關
如果被除數是負數,得到結果是 - infinity (負無窮)
如果被除數為0,得到結構是nan(非數)
isfinite函式,用來判斷乙個資料是否有限
isfinite(1.3); //true
isfinite(infinity); //false
isfinite(-infinity); //false
isfinite(0/0); //false
isfinite(nan); //false
常見算術運算子: 加、減、乘、除、取餘、求模、自增、自減
boolean: true --> 1; false–>0
string : 如果字串內部是數字,則轉換為數字;如果看起來不是數字(1.2.2.2或23ass)則轉換成nan
如果字串是空字串(即沒有任何內容)則轉換數字型別為0;如果字串裡面即使有空格
也會忽略前後的空格最終轉為0;
eg
+"" ---> 0;
+" " ---> 0;
注意1:對於infinity也是一種數字的書寫方式,因此轉換的時候結果不為nan
+infinity ---> +infinity
-infinity--> -infinity
4.注意2:nan雖然是數字型別,但是它和任何數進行運算,結果都是nan
5.注意:
+null --> 0
;
-null --> -0
underfined --->nan
6.物件:首先將物件轉換為字串型別,然後在將該字串轉換為數字型別(object—>nan)
注意:{} * 5 --->會報錯,這裡可能會把{}當做**塊
({})* 5-->nan;或者({} * 5)-->nan; 這裡是加上了()是得{}變成了表示式
1.加號兩邊都是字串:則加號則為拼接功能
2.加號兩邊只有乙個是字串:則會將非字串的那一邊轉換成字串,然後在進行拼接
注意:當兩邊是進行算術運算時,不進行拼接
null + null ---> 0
;
null + 'null' --> "nullnull"
3.加號兩邊都沒有字串但是有一邊為物件,則會將物件轉換為字串[object object];然後在進行
({} +12) -->"[object object]12"
算術運算子的優先順序大於比較運算子
自增、自減
乘法、除法、取餘(%)
加法、減法
優先順序運算的細節
1.從左到右依次檢視2.如果遇到運算元則將資料直接取出
.3.如果遇到兩個相鄰的運算子,並且左邊的運算子的優先順序大於等於右邊的運算子的優先順序,那麼直接執行左邊的運算子
注:由於自增、自減是作用到變數上,因此他們的資料是不可以直接拿出來,當比較相鄰的操作符的優先順序在進行取值
console.
log(""+
3%2)
;// '1'
console.
log(+""
+3%2
); + 3 % 2); ---> 1
console.
log(++
"");// console.log(nan + "");---> 'nan'
console.
log(
null
/null);
// nan
var a;
console.
log(a +
+123);
// console.log(undefined + [object object] + 123); --->undefined[object object]123
console.
log(1+
""+1+
2);// console.log('1' + 1 + 2); --->'112'
console.
log(
*null);
// console.log(nan * null);--->nan
console.
log(+""
+100);
+ 100); -->100
1.如果{}前後沒有字串,物件轉換為字串[object object]常用比較運算子如下2.數**算中物件的轉換:首先將物件轉換為字串型別,然後在將該字串轉換為數字型別(object—>nan)
console.
log(
'11'
>
'2')
;//true 因為'1'的字元編碼》'2'的字元編碼
console.
log(
'11'
>
'12');
//true
console.
log(
'11'
>
'1')
;//true 由於第一位都是'1',因詞比較第二位,後面沒有第二位預設為0,而'1'的字元編碼為49。49>1
注:
1.nan與任何數字比較都為false
2.infinity比任何數都大
3.-infinity比任何數都小
注:目前將物件轉換為原始型別後,是字串"[object object]"
console.
log(
null
>-1
);//兩個都是原始型別; 0 > -1 true
console.
log(undefined >-1
)//都為原始型別 ; nan > -1 false
細節:
1.兩端資料型別相等:原始值比較的是裡面的資料;引用值比較的是裡面的位址
2.兩端資料型別不等:
(1): null 和 unfefined,他們之間相等;但是和其他原始型別比較則不等
(2)除了null 和undefined的其他原始型別,比較是則先轉換為數字在進行比較
(3)nan與任何數字比較都為false
(4)infinity 和 -infinity只能與自身相等
(5)物件比較:兩端都是物件比較的是位址;只有一端為物件,先講物件轉換為原始型別[object object]在進行比較
console.
log(
null
>=0)
;//兩個都是原始型別; 0 >= 0 true
console.
log(
null==0
);// false
console.
log(
'1'==
true);
// 1= 1 true
console.
log(1==
true);
//1=1 true
console.
log(2==
true);
//1 == 2 false
console.
log((==
1));
// [object object] == 1 ---> nan == 1 false
console.
log(
nan===
nan)
;//false
console.
log(
null
=== undefined)
;//false
console.
log(
null
== undefined)
;//true
資料庫小點點
0.1.oracle語法查詢 裝了oracle之後,在 oracle ora92 安裝的主目錄 jdbc lib下面的 classes12.jar 或者 classes12.zip裡面這個是9i的,還有10g 也在同樣的目錄下。比如我的10g的 f oracle product 10.2.0 db ...
VC 技術小點點
1 關於巨集定義 code 1 巨集定義 當巨集定義多於一行時,每行須以乙個 結束,必須的。2 最後乙個 後那個沒有也能編譯成功。3intmuxdebuglevel 4 define dbgprint lev,fmt 5 11 2 如何控制combo box的下拉長度 1.首先要知道兩點 一 那就是...
CSS3實現載入小點點動畫
button load keyframes change 50 75 載入 load timing function steps 一開始在使用css3的時候並沒有太注意這個timing function,只是注意到自定義貝塞爾曲線。1.第乙個引數指定了時間函式中的間隔數量 必須是正整數 這個間隔數量...