js運算中的幾個注意點

2022-09-17 22:21:18 字數 1898 閱讀 6477

1.除了字串參與的加法外,非number型別的值進行運算時,會將這些值轉換為number然後再運算

var res = true + 100;

console.log(res); // =101

var res1 = true + false;

console.log(res1);//=1

var res2 = null + 10;

console.log(res2);//=10

// 字串做減法也會轉換為number

var res1 = 100 - '123';

console.log(res1);//=-23

2. 任何值和nan做運算都得nan

3. 任何的值和字串做加法運算,都會先轉換為字串,然後再和字串做拼串的操作

4. 除0結果是無限大infinity

5. *=運算子運算順序

6. 非數值與數值進行比較時,會將其轉換為數字然後在比較

console.log(1 > false); //

true

console.log(1 >= true); //

true

console.log(1 >= 'it10'); //

true

console.log(1 > null); //

true

7. 如果符號兩側的值都是字串時,不會將其轉換為數字進行比較, 而會分別比較字串中字元的unicode編碼

8. null、undefined 、nan比較

console.log(null == null);//

true

console.log(undefined == undefined);//

true

console.log(nan == nan); //

false

var num = nan;

console.log(isnan(num)); // true

console.log(null == undefined); // true

console.log(null === undefined); // false

9. 邏輯短路

&&:第乙個為假,第二個將不會繼續運算

||:第乙個為真,第二個將不會繼續運算

10. 邏輯運算返回值

//

對於非boolean型別的數值, 邏輯與會自動將其轉換為boolean型別來判斷

//邏輯與運算

//如果條件a成立, 不管條件b成不成立都返回條件b數值本身

var result = 123 && 'abc';

console.log(result);

//='abc'

var result = 123 && 0;

console.log(result);

//=0

//如果條件a不成立, 則返回條件a的數值本身

var result = null && 0;

console.log(result);

//=null

//邏輯或運算

var result = 123 || 'abc';

console.log(result);

//=123

var result = null || 0;

console.log(result);

//=0

11. 對乙個值進行兩次取反,它不會變化

12. js括號裡有多個逗號分隔的表示式會怎麼運算和取值?

依次從左至右運算,取值為最後乙個表示式的值

rowtype的幾個注意點

一 rowtype只是指明引用的記錄的型別,但不保證not null約束 我們知道使用 type和 rowtype可以分別指定引用的字段 記錄型別,但其中有乙個特別需要注意的地方 type和 rowtype都不保證not null約束。例如 declare my empno emp.empno ty...

rowtype的幾個注意點

一 rowtype只是指明引用的記錄的型別,但不保證not null約束 我們知道使用 type和 rowtype可以分別指定引用的字段 記錄型別,但其中有乙個特別需要注意的地方 type和 rowtype都不保證not null約束。例如 declare my empno emp.empno ty...

C 的幾個注意點

1.static全域性變數與普通的全域性變數有什麼區別 static全域性變數只初使化一次,防止在其他檔案單元中被引用 static區域性變數和普通區域性變數有什麼區別 static區域性變數只被初始化一次,下一次依據上一次結果值 靜態區域性變數是指在函式體內宣告和定義的區域性變數,它僅供本函式使用...