JavaScript基本概念之操作符——一元操作符

ECMA-262描述了一組用于操作數據值的操作符,包括算術操作符(如加號和減號)、位操作符、關系操作符和相等操作法。ECMAScript操作符的與眾不同之處在于,它們能夠適用于很多值,如:字符串、數字值、布爾值、甚至對象。不過,在應用于對象是,相應的操作符通常都會調用對象的valueOf()和(或)toString()方法,以便取得可以操作的值。

一元操作符

只能操作一個值的操作符叫一元操作符。

  • 1. 遞增和遞減操作符
    ++ --
    各有兩個版本:前置型和后置型

前置型:變量的值都在語句被求值以前改變。
后置型:變量的值在包含它們的語句被求值之后改變

遞增和遞減操作符遵循下列規則:

  • 在應用于一個包含有效數字字符的字符串時,先將其轉換為數字值,再執行加減1的操作。字符串變量變成數值變量。
  • 在應用于一個不包含有效數字字符的字符串是,將變量的值設置為NaN。字符串變量變成數值變量。

  • 在應用于布爾值false時,先將其轉換為0在執行加減1的操作。布爾值變量變成數值變量。

  • 在應用于布爾值true時,先將其轉換為1在執行加減1的操作。布爾值變量變成數值變量。

  • 在應用與浮點數值時,執行加減1的操作。

  • 在應用與對象時,先調用對象的valueOf()方法,以便取得可以操作的值。然后對該值進行前述規則。如果是NaN,則調用toString()方法后在應用前述規則。對象變量變成數值變量。

  • 2. 一元加和減操作符

一元加和減操作符主要用于基本的算術運算,也可以由于轉換數據類型

一元操作符(+ -),放在數值前面,對數字不會產生任何影響。在非數值前面,會對這個值進行轉換,布爾值true(1)、false(0)、,字符串會被按照一組特殊的規則進行解析,對象會先調用它們的valueOf()和(或)toString()方法,在轉換得到值。

var s1 = "01";
var s2 = "1.1";
var s3 = "z";
var b = false;
var f = 1.1;
var o = {
  valueOf:function(){
  return -1;
  }
};

s1 = +s1; //1
s2 = +s2; //1.1
s3 = +s3; //NaN
b = +b;  //0
f = +f; //1.1
o = +o; //-1
var s1 = "01";
var s2 = "1.1";
var s3 = "z";
var b = false;
var f = 1.1;
var o = {
  valueOf:function(){
  return -1;
  }
};

s1 = -s1; //-1
s2 = -s2; //-1.1
s3 = -s3; //NaN
b = -b;  //0
f = -f; //-1.1
o = -o; //1
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容