運算子的常見問題

2021-10-09 04:54:10 字數 2968 閱讀 6039

1、算數運算子常見問題

(1)運算浮點時運算會有誤差(二進位制精度問題影響)。

(2)算術運算子中前後有字串的出現且有+運算子的情況下則一般會完成字串的拼接。

(3)如果運算過程中沒有字串且使用+運算子的情況下,其他型別都會轉換為number型別並進行加法運算。

(4)所有型別遇到 - * / % 運算子時,都會隱式轉換為數值,然後進行計算。

2、一元運算子和賦值運算子

賦值運算子:

var a =3;

a +=

"";

(1)會利用隱式轉換完成字串的拼接。

var a = 5;

var b = a+5+(a+=5);

(2)優先順序問題:優先順序低的無法直接排在優先順序高的後直接運算,通常需要加()來解決問題,不然**會出現報錯。

(3)當進行左移位或者右移位時先轉換為二進位制。

(4)賦值運算子優先順序非常低。

一元運算子:

(1)a++與++a的問題。

從結果來說對於a他們的計算結果相同。

但在兩者同時用於計算時,a++時將a先參與運算或者賦值,而++a是將a加1後的結果先參與運算或者賦值。

(2)對於 " ++ " 和 " – " 來說通常都會直接使用算數運算子來處理,一般情況下先轉化為數值,然後在進行運算。

var a =3;

var b = a++

+a++

+a+a+a++

+a++

+a;var c = a++

+(a+=a)

+a++

;

他們的結果都是一定的。

3、關係運算子與邏輯運算子

關係運算子:

(1)它不一定只用於比較兩者之間關係,還可以參與計算。

var a=3,

b=4,

c=5;

c+= a

console.

log(0==

'')true

console.

log(

false

==''

)true

console.

log(0==

false

)true

特殊

console.log(null==undefined)  true
只有null與undefined比較才是true,其餘都為false。

console.

log(

nan==

nan)

false

nan為唯一存在的值,它無法與自身相等,因為它可能是任何乙個值。

邏輯運算子

(1)&& 的一些用法

true && true = (第二個值)

true && false = (第二個值)

false && true = (第乙個值)

false && false = (第乙個值)

例如:

console.

log(3&&

0);0

console.

log(3&&

4);4

console.

log(

""&&0)

;""

(2)|| 的一些用法

true || true = (第乙個值)

true || false = (第乙個值)

false || true = (第二個值)

false || false = (第二個值)

var obj;

obj = obj ||

若obj轉換為布林的值為true,則直接熔斷。

如果為false則取第二個值。

位運算主要用於專項**,**不易被看懂。

(1)&運算

特點: 1 & 1 = 1, 1 & 0 = 0,

​ 0 & 1 = 0, 0 & 0 = 0.

25&34

=0;//25 轉化為二進位制為 011001;

//34 轉換為二進位制為 100010;

// 所以計算結果為 000000;

6&7

=7;37

&7=5

;

任何與2^n-1為原數值。(二進位制轉化所剩後幾位時)。

(2)|運算

特點: 1 | 1 = 1, 0 | 1 = 1,

​ 1 | 0 = 1, 0 | 0 = 0.

25|34

=59;

//25 轉化為二進位制為 011001;

//34 轉換為二進位制為 100010;

// 所以計算結果為 111011;3*16+11=59.

(3)^異或運算

特點: 1 ^ 1 = 0, 0 ^ 1 = 1,

​ 1 ^ 0 = 1, 0 ^ 0 = 0.

6^7

=1;// 110 ^ 111 = 001

(4)~位非運算

特點:加1取負數

~1=

-2

(5)<< >> 左移右移

a>b 將a的二進位制向右移動b個單位,並丟棄被移位的值。

(6)三目運算

var a =

3>2?

1:0;

判斷條件是否成立,如果成立返回第乙個值,否則返回第二個值。

或者說若轉換布林為真則返回第乙個值,否則返回第二個值。

注:問號前的內容會隱式轉換為布林值

三目運算比賦值運算高

當需要返回是布林值時,不需要用三目運算。

常見的運算子

1.算術運算子 加法 減法 乘法 除法 求餘數,求模 整除 冪次方 2.邏輯運算子 結果是乙個bool值 與 並且 and 多者條件必須同時滿足 或 或者 or 只要有一者為真,則為真 非 不是 not 取反 3.關係 比較 運算子 結果是乙個bool值 大於 小於 大於等於 小於等於 不等於 等於...

常見的運算子

算術運算子 常見的加減乘除 特殊一點的有在運算除法時出現除不盡的情況下對應的兩種分別是 取整 選取整數部分 取模 簡單說就是取餘數部分 還有乙個是冪次方,用兩個相乘 表示,輸入後返回的是x的y次方 邏輯運算子 and or not 進行邏輯判斷返回的非真 ture 即假 false 關係運算子 大於...

Python的常見運算子

python中有以下三種常見的運算子 1.算數運算子 2.邏輯運算子 3.關係 比較 運算子 4.賦值運算子 算數運算子 邏輯運算子 結果是乙個bool值 與 並且 and 多者條件必須同時滿足 或 或者 or 只要有一者為真,則為真 非 不是 not 取反 賦值運算子 將右側的值賦給左側 數值加 ...