JavaScript 學習筆記之操作符
來源:易賢網(wǎng) 閱讀:809 次 日期:2015-03-30 14:23:57
溫馨提示:易賢網(wǎng)小編為您整理了“JavaScript 學習筆記之操作符”,方便廣大網(wǎng)友查閱!

本文著重給大家介紹了javascript的操作符,包含一元操作符、位操作符、布爾操作符這3種類型,講解的十分全面,小伙伴們參考下

一、一元操作符

1、自增自減操作符:分為前置型和后置型;

前置型:++a;--a;

后置型:a++;a--;

例:

代碼如下:

<script type="text/javascript">

var a, b,i= 1,j=1;

a=i++;

b=++j;

alert("a="+a+",i="+i+",b="+b+",j="+j);//a=1,i=2,b=2,j=2

</script>

其中a=i++,相當于a=i;i=i+1;

而b=++j,相當于j=j+1;b=j;

2、一元加減操作符:a=+i;a=-i;

代碼如下:

<script type="text/javascript">

var a, b,i= 1,j=1;

a=+i;

b=-j;

alert("a="+a+",i="+i+",b="+b+",j="+j);//a=1,i=1,b=-1,j=1

</script>

對整數(shù)而言,一元減相當于取負數(shù)。

二、位操作符

1、按位非~ (NOT)

非,即按二進制形式將所有數(shù)字取反。

常見用法:位運算 NOT 實質(zhì)上是對數(shù)字求負,然后減 1

2、按位或| (OR)

或,即按二進制形式將所有的數(shù)字與目標數(shù)字按位進行或操作。

常見用法:通常用于二進制數(shù)字的無條件賦值。例如:一個數(shù)字|1,相當于與獲取與當前數(shù)字最接近的奇數(shù)。

3、按位與& (AND)

與,即按二進制形式將所有的數(shù)字與目標數(shù)字按位進行與操作。

常見用法:通常用于二進制的取位操作,例如:一個數(shù)字&1,如果結(jié)果為0則為偶數(shù),如果為1則為奇數(shù)。

4、按位異或^ (XOR)

異或,即按二進制形式將所有數(shù)字與目標數(shù)字對比,只有兩個數(shù)字不相同即只有一個數(shù)位存放的是1的時候返回1,如兩個數(shù)字相同返回0.

常見用法:xor運算的逆運算是它本身,也就是說兩次異或同一個數(shù)最后結(jié)果不變??梢杂糜诤唵蔚募用埽蚪换?shù)值操作。

5、左移<<

左移,即按二進制形式把所有的數(shù)字向左移動對應(yīng)的位數(shù),高位移出(舍棄),低位的空位補零。左移不會影響符號位。

數(shù)學意義:在數(shù)字沒有溢出的前提下,對于正數(shù)和負數(shù),左移一位都相當于乘以2的1次方,左移n位就相當于乘以2的n次方。

6、右移

6.1有符號的右移>>:即按二進制形式把所有的數(shù)值向右移動但是保留符號位。

數(shù)學意義:在數(shù)字沒有溢出的前提下,對于正數(shù)和負數(shù),右移一位都相當于除以2的1次方,右移n位就相當于除以2的n次方。

6.2無符號的右移>>>:即按二進制形式把所有的數(shù)值,包括符號位都向右移動。

對于正數(shù)來說>>和>>>的結(jié)果是一樣的;

對負數(shù)來說,由于負數(shù)以其絕對值的補碼形式表示,因此會導致無符號右移結(jié)果非常大。

三、布爾操作符

1、邏輯非 !

邏輯非用!表示,可以應(yīng)用與ECMAScript的任何類型的值,邏輯非操作返回的是一個布爾值(true/false)。該操作符首先會將它的操作數(shù)轉(zhuǎn)換為一個布爾值,然后再對其求反.

??!相當于Boolean()函數(shù)。

Boolean()轉(zhuǎn)型函數(shù)的一組規(guī)則。

數(shù)據(jù)類型 轉(zhuǎn)換為true的值 轉(zhuǎn)換為false的值

Boolean true false

String   任何非空字符串 ""(空字符串)

Number  任何非零數(shù)字值(包括無窮大) 0和NaN

Object 任何對象 null

Undefined 無 undefined

2、邏輯與&&

邏輯與有兩個操作數(shù)。

邏輯與操作可以應(yīng)用于任何類型的操作數(shù),而不僅僅是布爾值。在有一個操作數(shù)不是布爾值的情況下,邏輯與操作就不一定返回布爾值;此時,它遵循一下規(guī)則:

1. 如果第一個操作數(shù)是對象,則返回第二個操作數(shù);

2. 如果第二個操作數(shù)是對象,則只有在第一個操作數(shù)的求值結(jié)果為true的情況下才會返回該對象;

3. 如果兩個操作符都是對象,則返回第二個操作數(shù); 遵循第一規(guī)則。

4. 如果有一個操作數(shù)是null,則返回null;

5. 如果有一個操作數(shù)是NaN,則返回NaN;

6. 如果有一個操作數(shù)是undefined,則返回undefined。

邏輯與操作屬于短路操作,即如果第一操作數(shù)能夠決定結(jié)果,那么就不會再對第二個操作數(shù)求值。(可以理解為內(nèi)部的兩個return操作)。因此當4、5、6規(guī)則沖突時,遵循短路操作原則。

代碼如下:

var nul = null;

var na = NaN;

var test;

test = na&&nul;

document.write(test); //NaN

代碼如下:

var nul = null;

var na = NaN;

var test;

test = nul&&na;

document.write(test); //null

3、邏輯或||

邏輯或有兩個操作數(shù)。

邏輯或與邏輯與相似,操作可以應(yīng)用于任何類型的操作數(shù),而不僅僅是布爾值。在有一個操作數(shù)不是布爾值的情況下,邏輯或操作就不一定返回布爾值;此時,它遵循一下規(guī)則:

1. 如果第一個操作數(shù)是對象,則返回第一個操作數(shù);

2. 如果第一個操作數(shù)的結(jié)果是false,則返回第二個操作數(shù);

3. 如果兩個操作符都是對象,則返回第一個操作數(shù),遵循第一條規(guī)則。

4. 如果兩個操作數(shù)都是null,則返回null;

5. 如果兩個操作數(shù)都是NaN,則返回NaN;

6. 如果兩個操作數(shù)都是undefined,則返回undefined。

邏輯或操作屬于短路操作,即如果第一操作數(shù)結(jié)果為true,那么就不會再對第二個操作數(shù)求值。

我們可以利用邏輯或的這個特性來避免為變量賦null或undefined的值

例如:var myObject=firstObject||secondObject

如果firstObject不是null,則firstObject被賦值給myObject,否則將secondObject的值賦給myObject.

以上內(nèi)容就是本文的全部了,希望對大家能有所幫助

更多信息請查看IT技術(shù)專欄

更多信息請查看腳本欄目
易賢網(wǎng)手機網(wǎng)站地址:JavaScript 學習筆記之操作符

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)