日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

javascript进制转换_「js基础」JavaScript逻辑和位运算符归纳

發(fā)布時間:2023/12/10 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript进制转换_「js基础」JavaScript逻辑和位运算符归纳 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

上一篇文章呢,我們講述了JavaScript運算符中的關系運算符邏輯運算符,那么緊接上一篇的文章我們今天來說說邏輯運算符

引言

邏輯運算符不是很難,也不是很多,我們只要記住三個就可以啦!分別是:

  • ! 邏輯非
  • && 邏輯與
  • || 邏輯或
  • 跟我們上初中判斷命題的真假一樣,返回的結(jié)果無異于真“或”“假”,原理上都是一樣的,還有沒有小伙伴記得啊?如下圖:

    命題的真假判斷

    JavaScript邏輯運算符也是一樣的,我們先看看下圖:

    邏輯運算符

    其中expr可能是任何一種類型, 不一定是布爾值

    邏輯非(!)

    簡單說就是不是(not)的意思,符合雙重否定變肯定的旨意。

    //給定 x=6 以及 y=3!(x==y) 為 true

    規(guī)則:

  • 如果一個操作數(shù)是一個對象,返回false。
  • 如果一個操作數(shù)是一個空字符串,返回false。
  • 如果一個操作數(shù)是一個非空字符串,返回false。
  • 如果一個操作數(shù)是一個數(shù)值0,返回true。
  • 如果一個操作數(shù)是任意的非零字符,返回false。
  • 如果一個操作數(shù)是null,返回true。
  • 如果一個操作數(shù)是NaN,返回true。
  • 如果一個操作數(shù)是undefined,返回true。
  • 特性:

    1、如果運算數(shù)的值為false,則返回true,否則返回false。

    2、連續(xù)使用兩次,可將任意類型轉(zhuǎn)化為布爾型值。

    邏輯與(&&)

    簡單說就是和(and)的意思。

    //給定 x=6 以及 y=3(x < 10 && y > 1) 為 true

    規(guī)則:

  • 第一個操作數(shù)是對象,則返回該對象。
  • 第二個操作數(shù)是對象,第一個操作數(shù)值為true是返回該對象。
  • 兩個操作數(shù)都是對象,則返回第二個操作數(shù)。
  • 一個操作數(shù)是NULL,返回NULL。
  • 一個操作數(shù)是NaN,返回NaN。
  • 一個操作數(shù)是undefined,返回undefined
  • 例如:

    var str = new Array(); console.log(str&&8);//返回值為8console.log(8&&null);//返回結(jié)果為null

    特性:

    1、當且僅當兩個運算數(shù)的值都是true時,才返回true,否則返回false。

    2、短路操作:當?shù)谝粋€操作數(shù)的值為false時,則不再對第二個操作數(shù)進行求值。

    邏輯與,邏輯非都遵循從左向右判斷,誰的第一個操作數(shù)邏輯判斷為true就返回誰,只不過邏輯非必須兩個都為true,而且誰是第一個false就返回誰。

    邏輯或(||)

    簡單說就是或(or)的意思。

    //給定 x=6 以及 y=3(x==5 || y==5) 為 false

    規(guī)則:

  • 第一個操作數(shù)是對象,返回第一個操作數(shù)
  • 第一個操作數(shù)值為false,返回第二個操作數(shù)
  • 兩個操作數(shù)都是對象,返回第一個操作數(shù)
  • 兩個操作數(shù)都是NULL,返回NULL
  • 兩個操作數(shù)都是NaN,返回NaN
  • 兩個操作數(shù)都是undefined,返回undefined
  • 特性:

    1、當且僅當兩個運算數(shù)的值都為false時,才會返回false,否則返回true。

    2、如果第一個操作數(shù)值為true,則不會對第二個操作數(shù)進行求值。

    位運算符

    按位操作符(Bitwise operators) 將其操作數(shù)(operands)當作32位的比特序列(由0和1組成),而不是十進制、十六進制或八進制數(shù)值。例如,十進制數(shù)9,用二進制表示則為1001。按位操作符操作數(shù)字的二進制形式,但是返回值依然是標準的JavaScript數(shù)值。

    JavaScript中的按位操作符

    有符號32位整數(shù)

    所有的按位操作符的操作數(shù)都會被轉(zhuǎn)成補碼(two's complement)形式的有符號32位整數(shù)。補碼形式是指一個數(shù)的負對應值(negative counterpart)(如 5和-5)為數(shù)值的所有比特位反轉(zhuǎn)后,再加1。反轉(zhuǎn)比特位即該數(shù)值進行’非‘位運算,也即該數(shù)值的反碼。例如下面為整數(shù)314的二進制編碼:

    00000000000000000000000100111010

    下面編碼 ~314,即 314 的反碼:

    11111111111111111111111011000101

    補碼保證了當一個數(shù)是正數(shù)時,其最左的比特位是0,當一個數(shù)是負數(shù)時,其最左的比特位是1。因此,最左邊的比特位被稱為符號位(sign bit)。

    0 是所有比特數(shù)字0組成的整數(shù)。

    0 (base 10) = 00000000000000000000000000000000 (base 2)

    -1 是所有比特數(shù)字1組成的整數(shù)。

    -1 (base 10) = 11111111111111111111111111111111 (base 2)

    -2147483648(十六進制形式:-0x80000000)是除了最左邊為1外,其他比特位都為0的整數(shù)。

    -2147483648 (base 10) = 10000000000000000000000000000000 (base 2)

    2147483647(十六進制形式:0x7fffffff)是除了最左邊為0外,其他比特位都為1的整數(shù)。

    2147483647 (base 10) = 01111111111111111111111111111111 (base 2)

    數(shù)字-2147483648 和 2147483647 是32位有符號數(shù)字所能表示的最小和最大整數(shù)。

    按位邏輯操作符

    從概念上講,按位邏輯操作符按遵守下面規(guī)則:

    • 操作數(shù)被轉(zhuǎn)換成32位整數(shù),用比特序列(0和1組成)表示。超過32位的數(shù)字會被丟棄。例如, 以下具有32位以上的整數(shù)將轉(zhuǎn)換為32位整數(shù):
    轉(zhuǎn)換前: 11100110111110100000000000000110000000000001轉(zhuǎn)換后: 10100000000000000110000000000001
    • 第一個操作數(shù)的每個比特位與第二個操作數(shù)的相應比特位匹配:第一位對應第一位,第二位對應第二位,以此類推。
    • 位運算符應用到每對比特位,結(jié)果是新的比特值。

    & (按位與)

    對每對比特位執(zhí)行與(AND)操作。只有 a 和 b 都是 1 時,a AND b 才是 1。與操作的真值表如下:

    9 (base 10) = 00000000000000000000000000001001 (base 2)14 (base 10) = 00000000000000000000000000001110 (base 2)14 & 9 (base 10) = 00000000000000000000000000001000 (base 2) = 8 (base 10)

    將任一數(shù)值 x 與 0 執(zhí)行按位與操作,其結(jié)果都為 0。將任一數(shù)值 x 與 -1 執(zhí)行按位與操作,其結(jié)果都為 x。

    | (按位或)

    對每一對比特位執(zhí)行或(OR)操作。如果 a 或 b 為 1,則 a OR b 結(jié)果為 1。或操作的真值表:

    9 (base 10) = 00000000000000000000000000001001 (base 2)14 (base 10) = 00000000000000000000000000001110 (base 2)14 | 9 (base 10) = 00000000000000000000000000001111 (base 2) = 15 (base 10)

    將任一數(shù)值 x 與 0 進行按位或操作,其結(jié)果都是 x。將任一數(shù)值 x 與 -1 進行按位或操作,其結(jié)果都為 -1。

    ^ (按位異或)

    對每一對比特位執(zhí)行異或(XOR)操作。當 a 和 b 不相同時,a XOR b 的結(jié)果為 1。異或操作真值表:

    9 (base 10) = 00000000000000000000000000001001 (base 2)14 (base 10) = 00000000000000000000000000001110 (base 2)14 ^ 9 (base 10) = 00000000000000000000000000000111 (base 2) = 7 (base 10)

    將任一數(shù)值 x 與 0 進行異或操作,其結(jié)果為 x。將任一數(shù)值 x 與 -1 進行異或操作,其結(jié)果為 ~x。

    ~ (按位非)

    對每一個比特位執(zhí)行非(NOT)操作。NOT a 結(jié)果為 a 的反轉(zhuǎn)(即反碼)。非操作的真值表:

    9 (base 10) = 00000000000000000000000000001001 (base 2)~9 (base 10) = 11111111111111111111111111110110 (base 2) = -10 (base 10)

    對任一數(shù)值 x 進行按位非操作的結(jié)果為 -(x + 1)。例如,~5 結(jié)果為 -6。

    按位移動操作符

    按位移動操作符有兩個操作數(shù):第一個是要被移動的數(shù)字,而第二個是要移動的長度。移動的方向根據(jù)操作符的不同而不同。

    按位移動會先將操作數(shù)轉(zhuǎn)換為大端字節(jié)序順序(big-endian order)的32位整數(shù),并返回與左操作數(shù)相同類型的結(jié)果。右操作數(shù)應小于 32位,否則只有最低 5 個字節(jié)會被使用。

    注:Big-Endian:高位字節(jié)排放在內(nèi)存的低地址端,低位字節(jié)排放在內(nèi)存的高地址端,

    又稱為"高位編址"。

    Big-Endian是最直觀的字節(jié)序:

    ①把內(nèi)存地址從左到右按照由低到高的順序?qū)懗?#xff1b;

    ②把值按照通常的高位到低位的順序?qū)懗?#xff1b;

    ③兩者對照,一個字節(jié)一個字節(jié)的填充進去。

    << (左移)

    該操作符會將第一個操作數(shù)向左移動指定的位數(shù)。向左被移出的位被丟棄,右側(cè)用 0 補充。

    例如:9 << 2 得到 36:

    >> (有符號右移)

    該操作符會將第一個操作數(shù)向右移動指定的位數(shù)。向右被移出的位被丟棄,拷貝最左側(cè)的位以填充左側(cè)。由于新的最左側(cè)的位總是和以前相同,符號位沒有被改變。所以被稱作“符號傳播”。

    例如, 9 >> 2 得到 2:

    9 (base 10): 00000000000000000000000000001001 (base 2)9 >> 2 (base 10): 00000000000000000000000000000010 (base 2) = 2 (base 10)

    >>> (無符號右移)

    該操作符會將第一個操作數(shù)向右移動指定的位數(shù)。向右被移出的位被丟棄,左側(cè)用0填充。因為符號位變成了 0,所以結(jié)果總是非負的。(譯注:即便右移 0 個比特,結(jié)果也是非負的。)

    對于非負數(shù),有符號右移和無符號右移總是返回相同的結(jié)果。例如 9 >>> 2 和 9 >> 2 一樣返回 2:

    9 (base 10): 00000000000000000000000000001001 (base 2)9 >>> 2 (base 10): 00000000000000000000000000000010 (base 2) = 2 (base 10)

    但是對于負數(shù)卻不盡相同。 -9 >>> 2 產(chǎn)生 1073741821 這和 -9 >> 2 不同:

    -9 (base 10): 11111111111111111111111111110111 (base 2)-9 >>> 2 (base 10): 00111111111111111111111111111101 (base 2) = 1073741821 (base 10)

    說到這里,本篇的邏輯運算符和位運算符我們就講到這里了,下期我們再講JavaScript數(shù)組

    想了解更多的前端技術,關注我,持續(xù)為您輸出干貨,謝謝!

    總結(jié)

    以上是生活随笔為你收集整理的javascript进制转换_「js基础」JavaScript逻辑和位运算符归纳的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 好吊妞视频在线观看 | 不卡精品| 色图插插插 | 91精品免费视频 | 永久久久久久 | 国产精品videos| 日本少妇ⅹxxxxx视频 | 国产美女视频一区二区 | 亚洲欧美色图 | 在线精品国产 | 精品一区免费观看 | 亚洲成人系列 | 亚洲中文字幕久久无码 | 日本免费视频 | 九九热精品视频在线播放 | 亚洲第一精品网站 | 超碰免费91 | 亚洲欧洲精品成人久久奇米网 | 日本一区二区三区视频在线观看 | 国产一级片网址 | 欧美性大战久久久久久久蜜桃 | 日韩av资源站 | 在线观看a网站 | 日韩污视频 | 亚洲乱码国产乱码精品精软件 | 色在线网站| 免费91看片 | 毛片一级视频 | 日本久久久久 | 男女做爰猛烈吃奶啪啪喷水网站 | 播色网| 色诱av| 91本色| 91亚洲天堂 | 大奶子网站 | 亚洲国产视频一区二区 | 国产传媒一区二区三区 | 日本一区二区视频在线观看 | 丁香久久| 亚洲码无人客一区二区三区 | 91蝌蚪少妇偷拍 | 久久丫精品久久丫 | 麻豆视频在线观看免费 | 一级肉体全黄裸片中国 | 免费毛片看| 欧美激精品 | 成人午夜精品视频 | 欧美日韩亚洲一区二区三区 | 深夜福利网址 | 少妇太紧太爽又黄又硬又爽 | 日韩欧美高清dvd碟片 | 欧美一级色片 | 日本三级免费 | 欧美性猛交xxxx乱大交hd | 永久免费成人 | 99免费看 | 日本一区二区三区免费电影 | 日本高清视频免费观看 | 丝袜调教91porn | 999精品一区 | 少妇av一区二区三区 | 嫩草在线观看 | 91热在线| 电影桑叶2在线播放完整版 222aaa | 永久免费av| 国产一线在线观看 | 草逼网站| 国产伦精品一区二区三区视频网站 | 亚洲成年 | 青娱乐毛片 | 国产av电影一区二区三区 | 国产精品久久久久久人妻精品动漫 | 波多野结衣视频观看 | 色网址在线观看 | 美女xx00 | 日韩国产欧美一区二区 | 在线观看成年人网站 | 国产第七页 | 日韩成人av在线 | 97超级碰碰人妻中文字幕 | 九九九九精品 | 一级黄色片在线 | 国产一级不卡毛片 | 香蕉网在线播放 | 美女福利网站 | 熟妇人妻va精品中文字幕 | 欧美一级黄| 亚洲中字幕 | 在线观看中文字幕亚洲 | 性欧美最猛 | 日本一卡二卡在线 | 国产超碰在线观看 | gai免费观看网站外网 | xxxxxx国产| 久久久夜夜夜 | 天堂中文网 | 女性向小h片资源在线观看 日本天天操 | 国产精品国产三级国产aⅴ 欧美bbbbbbbbbbbb18av | 成年性生交大片免费看 |