亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript 學(xué)習(xí)筆記之操作符

 更新時間:2015年01月14日 10:34:19   投稿:hebedich  
本文著重給大家介紹了javascript的操作符,包含一元操作符、位操作符、布爾操作符這3種類型,講解的十分全面,小伙伴們參考下

一、一元操作符

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

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

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

例:

復(fù)制代碼 代碼如下:

   <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++,相當(dāng)于a=i;i=i+1;
而b=++j,相當(dāng)于j=j+1;b=j;

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

復(fù)制代碼 代碼如下:

  <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ù)而言,一元減相當(dāng)于取負(fù)數(shù)。

二、位操作符

1、按位非~ (NOT)

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

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

2、按位或| (OR)

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

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

3、按位與& (AND)

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

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

4、按位異或^ (XOR)

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

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

5、左移<<

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

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

6、右移

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

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

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

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

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

三、布爾操作符

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

?。∠喈?dāng)于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操作)。因此當(dāng)4、5、6規(guī)則沖突時,遵循短路操作原則。

復(fù)制代碼 代碼如下:

 var nul = null;
 var na = NaN;
 var test;
 test = na&&nul;
 document.write(test); //NaN

復(fù)制代碼 代碼如下:

 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)容就是本文的全部了,希望對大家能有所幫助

相關(guān)文章

  • TypeScrip中泛型的案例詳解

    TypeScrip中泛型的案例詳解

    這篇文章主要介紹了TypeScrip中泛型的案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 如何讓頁面在打開時自動刷新一次讓圖片全部顯示

    如何讓頁面在打開時自動刷新一次讓圖片全部顯示

    我的網(wǎng)頁的圖片較多,而服務(wù)器也不是很好,所以每次打開網(wǎng)頁后總有一、兩幅圖片無法顯示,但刷新一遍后又全部可顯示了,這種問題相信每個人都遇到過,接下來介紹詳細(xì)解決方法
    2012-12-12
  • 淺談js中的bind

    淺談js中的bind

    這篇文章主要介紹了js中的bind應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Javascript的迭代器和迭代接口詳解

    Javascript的迭代器和迭代接口詳解

    這篇文章主要為大家詳細(xì)介紹了Javascript的迭代器和迭代接口,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 在javaScript中關(guān)于submit和button的區(qū)別介紹

    在javaScript中關(guān)于submit和button的區(qū)別介紹

    submit是button的一個特例,也是button的一種,它把提交這個動作自動集成了,submit和button,二者都以按鈕的形式展現(xiàn),看起來都是按鈕,所不同的是type屬性和處發(fā)響應(yīng)的事件上
    2013-10-10
  • javascript setinterval 的正確語法如何書寫

    javascript setinterval 的正確語法如何書寫

    setinterval是用來干什么,想必大家都知道了,下面為大家介紹下javascript setinterval 正確的語法,高手勿噴
    2014-06-06
  • jQuery入門問答 整理的幾個常見的初學(xué)者問題

    jQuery入門問答 整理的幾個常見的初學(xué)者問題

    大家可能看到了,我已經(jīng)將過去寫的兩篇jQuery的教程刪掉了,因?yàn)楦郊淮嬖诹说鹊葐栴},所以刪除了,從今天開始我就寫jQuery教程第二版了!希望大家能夠支持我!
    2010-02-02
  • 網(wǎng)頁全屏顯示代碼說明分析

    網(wǎng)頁全屏顯示代碼說明分析

    下面分享網(wǎng)頁全屏顯示代碼,想做全屏顯示效果的朋友可以參照下。
    2009-07-07
  • js原型繼承的兩種方法對比介紹

    js原型繼承的兩種方法對比介紹

    這篇文章主要介紹了js原型繼承的兩種方法對比介紹,需要的朋友可以參考下
    2014-03-03
  • 全面了解js中的script標(biāo)簽

    全面了解js中的script標(biāo)簽

    下面小編就為大家?guī)硪黄媪私鈐s中的script標(biāo)簽。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07

最新評論