精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為何null>0,null==0為false,而null>=0為true?

開發 前端
javaScript中有很多異于常人思維的邏輯,比如null > 0, null == 0都為false,但null >= 0 卻為true。

前言

javaScript中有很多異于常人思維的邏輯,比如null > 0, null == 0都為false,但null >= 0 卻為true。

有些人看到這里覺得這怎么可能,于是跑到瀏覽器控制臺嘗試執行了一番,執行后的結果,讓自己大吃一驚。

圖片

心想自己可能因為這個寫了不少bug,今天又學到了一個知識點,但這你要不去了解它的執行原理,估計你怎么都想不通。

下面我們就嘗試去一探究竟吧!

ToPrimitive 算法

JavaScript 對象轉換到基本類型值時,會使用 ToPrimitive 算法,這是一個內部算法,是編程語言在內部執行時遵循的一套規則。

hint

ToPrimitive 算法在執行時,會被傳遞一個參數 hint,表示這是一個什么類型的運算(也可以叫運算的期望值),根據這個 hint 參數,ToPrimitive 算法來決定內部的執行邏輯。

hint 參數的取值只能是下列 3 者之一:

  • string
  • number
  • default

toPrimitive轉換規則

如果傳入參數是string,也就是對象到字符串的轉換」,經過了如下步驟:

  • 如果對象中有toString()方法,則調用這個方法。如果它返回一個原始值(undefined、Boolean、Number、String、BigInt、Symbol 和 null),js將這個值轉換為字符串(如果本身不是字符串的話),并返回這個字符串結果。
  • 如果對象沒有toString()方法,或者toString()沒有返回一個原始值,那么js會調用valueOf()方法。如果返回值是原始值,js將這個值轉換為字符串,并返回字符串結果。
  • 否則,js拋出一個類型錯誤異常。

「如果傳入參數是number/default,也就是對象到數字的轉換」,經過了如下步驟:

和上面有點不同,到數字的轉換會先嘗試使用valueOf()方法

  • 如果對象具有valueOf()方法,后者返回一個原始值,則js會將其轉換為數字(如果需要的話)并返回這個數字。
  • 否則,如果對象具有toString()方法,返回一個原始值(字符串直接量),則js將其轉換為數字類型,并返回這個數字。
  • 否則,js拋出一個類型錯誤異常。

抽象關系比較算法

  1. 調用 b 的 ToPrimitive(hit Number) 方法.
  2. 調用 a 的 ToPrimitive(hit Number) 方法.
  3. 如果此時 Result(1) 與 Result(2) 都是字符串,跳到步驟 16.
  4. 調用 ToNumber(Result(1)).
  5. 調用 ToNumber(Result(2)).
  6. 如果 Result(4) 為 NaN, return undefined.
  7. 如果 Result(5) 為 NaN, return undefined.
  8. 如果 Result(4) 和 Result(5) 是相同的數字,return false.
  9. 如果 Result(4) 為 +0, Result(5) 為 -0, return false.
  10. 如果 Result(4) 為 -0, Result(5) 為 +0, return false.
  11. 如果 Result(4) 為 +∞, return false.
  12. 如果 Result(5) 為 +∞, return true.
  13. 如果 Result(5) 為 -∞, return false.
  14. 如果 Result(4) 為 -∞, return true.
  15. 如果 Result(4) 的數值大小小于 Result(5),return true,否則 return false.
  16. 如果 Result(2) 是 Result(1) 的前綴 return false. (比如 "ab" 是 "abc" 的前綴)
  17. 如果 Result(1) 是 Result(2) 的前綴, return true.
  18. 找到一個位置 k,使得 a[k] 與 b[k] 不相等.
  19. 取 m 為 a[k] 字符的數值.
  20. 取 n 為 b[k] 字符的數值.
  21. 如果 m < n, return true,否則 return false.

判斷null>0

按照上面這個步驟,我們可以嘗試來判斷一下null>0的結果

首先第一二步就是為它們分別調用ToPrimitive()將這兩個值轉換為原始類型,由于這兩個值都是基本類型,所以他們轉換后還是本身

然后第三步就不適用,我們接著看第四五步,將兩個值都轉為Number類型,null轉換成了+0,而0還是0。

接著看六七,由于兩者都不是NaN,所以我們直接看第八步,在js中+0與0是一樣的,所以返回false

null > 0 // false
null < 0 // false

抽象相等比較算法

  1. 如果 a 與 b 的類型相同,則:
  • 如果 Type(b) 為 undefined,return true.
  • 如果 Type(b) 為 null,return true.
  • 如果 Type(b) 為 number,則:
  • 如果 b 為 NaN,return false.
  • 如果 a 為 NaN,return false.
  • 如果 a 與 b 數值相同,return true.
  • 如果 a 為 +0,b 為 -0,return true.
  • 如果 a 為 -0,b 為 +0,return true.
  • 否則 return false.
  • 如果 Type(b) 為 string,且 a 與 b 是完全相同的字符串,return true,否則 return false.
  • 如果 Type(b) 是 boolean,如果都是 true 或 false,return true,否則 return false.
  • 如果 a 與 b 是同一個對象引用,return true,否則 return false.
  1. 如果 a 為 null,b 為 undefined,return true.
  2. 如果 a 為 undefined,b 為 null,return true.
  3. 如果 Type(a) 為 number,Type(b) 為 string,返回 a == ToNumber(b) 的結果.
  4. 如果 Type(a) 為 string,Type(b) 為 number,返回 ToNumber(a) == b 的結果.
  5. 如果 Type(a) 為 boolean,返回 ToNumber(a) == b 的結果.
  6. 如果 Type(b) 為 boolean,返回 a == ToNumber(b) 的結果.
  7. 如果 Type(a) 是 string 或 number,且 Type(b) 是對象類型,返回 a == ToPrimitive(b) 的結果.
  8. 如果 Type(a) 是對象類型,且 Type(b) 是 string 或 number,返回 ToPrimitive(a) == b 的結果.
  9. 否則 return false.

判斷null==0

null == 0 // false

null == 0 走到了第 10 步,返回了默認的 false。

大于等于操作符>=

從常理上來講,如果null>0為false,null==0也為false,那么null>=0肯定也為false。但事實并非如此

javascript 是這么定義大于等于判斷的:

如果 a < b 為 false,則 a >= b 為 true

這個規則是不是有點逆于常人思維,但它卻又是合理的,當a<b為false,那反過來a>=b肯定就為true對吧

所以null>=0為true,是因為null<0為false,看到這里,是不是又恍然大悟了呢?


責任編輯:華軒 來源: 前端南玖
相關推薦

2023-12-20 08:22:29

JavaIntegertrue

2015-11-23 10:09:30

Java

2020-12-31 08:05:27

MySQL服務器版本號

2017-09-05 09:02:06

Oraclenot null優化

2025-10-09 09:32:29

MySQL數據數據庫

2016-12-22 18:38:49

JavaAndroid

2024-04-25 08:21:36

Java對象計數法

2024-09-12 08:45:23

2015-03-13 09:36:09

NULLnullptr

2025-06-04 02:55:00

MySQLNULL類型

2017-03-27 16:44:07

戴爾服務器

2021-04-26 14:00:43

Java 數據類型

2021-08-18 08:20:14

SQL除數統計

2019-11-07 16:51:15

NULL三值邏輯SQL

2022-06-13 13:17:00

流計算數據

2010-09-17 10:24:47

SQL中IS NULL

2020-05-18 14:40:19

Javanull對象

2021-07-17 06:41:12

谷歌Chrome瀏覽器

2023-09-26 00:00:20

JS簡寫技巧

2010-09-28 11:48:36

SQL NULL值
點贊
收藏

51CTO技術棧公眾號

国产在线观看成人| 国产一级二级av| 97人人在线| 国产裸体歌舞团一区二区| 欧美激情a在线| 北岛玲一区二区| 日本免费成人| 亚洲高清免费观看 | 最近更新的2019中文字幕 | 国产黄色精品| 一区二区三区美女| 乱色588欧美| 国产一区二区小视频| 日韩视频一区| 色琪琪综合男人的天堂aⅴ视频| 人妻av一区二区三区| 国产v综合v| 亚洲一区二三区| 日韩偷拍一区二区| 亚洲黄色小说网| 免费黄网站欧美| 久久久免费精品| 亚洲色图日韩精品| 欧美大胆a级| 91精品国产免费| 日本爱爱免费视频| 成人免费高清观看| 亚洲同性gay激情无套| 欧美日韩在线不卡一区| 亚洲高清视频在线播放| 久久精品国产亚洲一区二区三区| 韩日欧美一区二区| 欧美成人精品欧美一级| 精品日本12videosex| 亚洲国产成人精品电影| 色噜噜狠狠一区二区三区狼国成人 | 91亚洲国产成人精品一区二区三| 国产日韩欧美中文在线播放| 在线视频一区二区三区四区| 国语精品一区| 久久综合久久美利坚合众国| 99久久精品免费视频| 青青久久av| 精品91自产拍在线观看一区| ass极品水嫩小美女ass| 九七电影院97理论片久久tvb| 日韩欧美一区二区在线| 国产av国片精品| 亚洲精品一线| 亚洲精品日日夜夜| 在线综合视频网站| 美女国产在线| 综合在线观看色| 一区二区视频在线观看| av网页在线| 中文欧美字幕免费| 日韩欧美亚洲精品| 成人午夜影视| 国产亚洲欧美激情| 欧美一区二区福利| 精品一二三区视频| 日本一区二区久久| 亚洲啪啪av| 五月天婷婷在线视频| 国产女同性恋一区二区| 亚洲国产精品久久久久久女王| 国产高清在线观看| 国产精品卡一卡二卡三| 伊人久久大香线蕉成人综合网| 成年在线电影| 国产精品久久久久久久第一福利 | 在线电影一区二区| 久久亚洲精品一区二区| 超碰手机在线观看| 亚洲视频碰碰| 欧美亚洲日本网站| 国产黄色免费视频| 另类成人小视频在线| 国产在线精品成人一区二区三区| 国产精品久久影视| 国产91精品在线观看| 国产在线一区二| 可以直接在线观看的av| 欧美国产一区视频在线观看| 中文字幕一区二区三区有限公司| 污片在线免费观看| 疯狂做受xxxx欧美肥白少妇| 成人在线免费观看av| 在线观看精品| 欧美一区二区三区不卡| www.四虎在线| 国产欧美一区| 麻豆国产va免费精品高清在线| 久久精品久久国产| 久久久久久色| 成人激情在线观看| 欧洲精品久久一区二区| 欧美国产激情二区三区| 日韩在线视频在线| 女生影院久久| 欧美一区二区三区人| 欧美成人三级伦在线观看| 精品视频国产| 久久久久久久久久久成人| 波多野结衣电车| 国产成人精品1024| 欧美一区二区综合| 激情网站在线| 欧美性高清videossexo| 挪威xxxx性hd极品| 久久影视一区| 欧美在线视频观看| 国产黄色片免费观看| 久久久综合视频| 日韩欧美视频免费在线观看| 全亚洲第一av番号网站| 欧美一二三区精品| 日本人亚洲人jjzzjjz| 激情久久久久久久| 国产精品视频区| 神马久久久久久久久久| 亚洲欧美区自拍先锋| 色一情一乱一伦一区二区三区日本 | 欧美暴力喷水在线| 国产精品久久久久久久久免费看| 好吊色一区二区三区| 国产精品电影院| 黄色片视频在线播放| 999久久久久久久久6666| 综合国产在线视频| 久久久久久无码午夜精品直播| 成人性视频网站| 中文字幕第50页| 欧美jizz18| 中文字幕精品一区久久久久| 无码任你躁久久久久久久| 成人激情黄色小说| 污污污污污污www网站免费| 日本免费成人| 精品国产欧美成人夜夜嗨| 国产乱码77777777| 久久久蜜桃精品| 成年人在线看片| 精品一区三区| 日产日韩在线亚洲欧美| 外国精品视频在线观看| 亚洲综合在线免费观看| 日本网站在线看| 欧美一区综合| 国产99视频精品免费视频36| 欧美日韩色网| 亚洲高清av在线| 天堂网一区二区三区| 波多野结衣中文字幕一区| av在线播放亚洲| 亚洲人成亚洲精品| 日韩美女毛茸茸| h视频在线免费| 欧美日韩一级大片网址| 懂色av粉嫩av浪潮av| 日韩精品一二区| 久久大香伊蕉在人线观看热2| а√在线中文在线新版| 亚洲成人黄色网址| av网站中文字幕| 久久天天做天天爱综合色| www.浪潮av.com| 日本中文字幕在线一区| 日韩av色综合| 国产高清免费在线播放| 91国在线观看| jizz日本在线播放| 久久精品国产亚洲高清剧情介绍| 中国一级大黄大黄大色毛片| 成人自拍视频| 精品中文字幕乱| 亚洲精品中文字幕成人片| 亚洲亚洲人成综合网络| 成人无码www在线看免费| 亚洲一区二区成人| 欧美精品欧美精品| 成人看片网站| 亚洲天堂av女优| 国产精品嫩草影院精东| 伊人夜夜躁av伊人久久| 性感美女一区二区三区| 99av国产精品欲麻豆| 99爱精品视频| 亚洲va中文在线播放免费| 在线观看日韩欧美| 一二三区中文字幕| 尤物在线观看一区| 日本一级大毛片a一| 久久久久久久尹人综合网亚洲| 日韩一区二区三区高清| 国产精品亚洲欧美日韩一区在线| 欧美高清videos高潮hd| 欧美 日韩 人妻 高清 中文| 欧美日韩在线播放一区| 欧美日韩一级大片| 99re热视频精品| www.日本一区| 黄色成人在线网址| 日韩和欧美的一区二区| 日韩三级网址| 国产91九色视频| 美女精品视频| 亚洲天堂网站在线观看视频| 国产精品日韩无码| 欧美日韩国产专区| 天天看片中文字幕| 久久综合色8888| 黄色一级片免费播放| 亚洲毛片视频| 午夜视频久久久| 日本精品影院| 99视频免费观看| 桃花岛成人影院| 麻豆国产va免费精品高清在线| 国产系列电影在线播放网址| 日韩小视频在线观看专区| 久久久黄色大片| 一区二区三区精品视频| 91av手机在线| 久久综合久久综合亚洲| 佐佐木明希电影| 青青草精品视频| 青草网在线观看| 小小影院久久| 欧美午夜精品久久久久久蜜| 91综合久久爱com| 国产一区二区丝袜高跟鞋图片| 日本精品不卡| 97人人做人人爱| 日本在线视频中文有码| 在线看欧美日韩| 国产对白叫床清晰在线播放| 欧美精品一区二区蜜臀亚洲| 一区二区三区精彩视频| 91国产成人在线| 国产精品熟女视频| 狠狠综合久久av一区二区小说| 久草视频免费在线| 日韩美女视频一区二区| 国产免费久久久久| 国产精品入口麻豆九色| 亚洲精品国产一区黑色丝袜| 99精品国产热久久91蜜凸| 中文字幕久久av| 久久99精品国产麻豆不卡| 国产1区2区在线| 欧美专区18| av一区二区三区免费观看| 亚洲午夜伦理| 国产精品国三级国产av| 欧美 亚欧 日韩视频在线| 亚欧洲精品在线视频免费观看| 国产精品片aa在线观看| 欧美人与性禽动交精品| 日日狠狠久久偷偷综合色| 国产亚洲精品美女久久久m| 琪琪久久久久日韩精品| 精品国产乱码久久久久久郑州公司 | 中文字幕不卡在线播放| www.色多多| 91麻豆精品视频| 极品人妻videosss人妻| 欧美国产丝袜视频| 欧美福利在线视频| 中文字幕在线一区| 久草视频在线资源| 亚洲成a天堂v人片| 国产精品23p| 欧美日韩国产区| 波多野结衣毛片| 欧美日韩国产经典色站一区二区三区| 中文字幕二区三区| 欧美精品v日韩精品v韩国精品v| 国产免费的av| 精品美女被调教视频大全网站| 丰满人妻一区二区| 亚洲精品国偷自产在线99热| yes4444视频在线观看| 色噜噜狠狠色综合网图区| 国产激情在线观看| 欧美激情视频一区| 新片速递亚洲合集欧美合集| 国产精品高潮在线| 成人免费观看49www在线观看| 99国产超薄丝袜足j在线观看| 最近国产精品视频| 亚洲欧美日韩综合一区| 欧美久久成人| 男人天堂999| 国产毛片一区二区| 亚洲av成人片无码| 久久久国产精品麻豆| 糖心vlog免费在线观看| 一区二区成人在线视频| 91国产丝袜播放在线| 欧美三电影在线| 午夜在线观看视频18| 永久免费毛片在线播放不卡 | 亚洲白拍色综合图区| 黄色小视频在线免费观看| 欧美成人午夜激情在线| 欧美特黄aaaaaaaa大片| 亚洲专区国产精品| 亚洲色图美女| 日韩精品一区二区三区电影| 国产精品毛片在线看| www.久久久久久久久久久| 久久久99免费| 国产亚洲精品女人久久久久久| 91久久精品网| 亚洲美女综合网| 中文字幕欧美日韩在线| 9765激情中文在线| 国产日韩精品一区二区| 欧美色婷婷久久99精品红桃| 欧美视频在线观看视频| 蜜桃视频在线观看一区| 日韩在线免费观看av| 一卡二卡欧美日韩| 久久午夜鲁丝片| 欧美大胆一级视频| av大全在线| 国产精自产拍久久久久久蜜| 加勒比色老久久爱综合网| 亚洲成人动漫在线| 免费在线观看精品| 国产特黄级aaaaa片免| 亚洲欧美精品午睡沙发| 国产又黄又大又爽| 亚洲图片在区色| 国产盗摄——sm在线视频| 国产精品免费在线| 91精品久久久久久久久久不卡| 成熟老妇女视频| 99天天综合性| 美女视频黄免费| 这里只有精品免费| 蜜桃视频在线免费| 日本精品免费观看| 国产一区在线电影| 久草免费福利在线| 丁香啪啪综合成人亚洲小说| 精品国产国产综合精品| 欧美亚洲日本国产| 国产福利第一视频在线播放| 欧美综合一区第一页| 精品国产乱子伦一区二区| 男人草女人视频| 成人美女视频在线观看| 欧美黄色免费看| 日韩欧美一区二区不卡| 欧美人与性动交α欧美精品图片| 91在线视频免费| 99热国内精品| 久久婷婷国产91天堂综合精品| 国产欧美日韩不卡免费| 免费的毛片视频| 亚洲欧洲日本专区| 欧美日韩尤物久久| 色一情一乱一伦一区二区三欧美| 日韩中文字幕麻豆| 女同久久另类69精品国产| 欧美视频中文字幕| 97超碰国产一区二区三区| 国产91精品视频在线观看| 精品国产一区二区三区噜噜噜| 国产精品少妇在线视频| 久久久噜噜噜久噜久久综合| 亚洲一区 中文字幕| 日韩在线视频免费观看| 国产aⅴ精品一区二区四区| 97在线国产视频| 91原创在线视频| 无码人妻av一区二区三区波多野 | 海角国产乱辈乱精品视频| 精品按摩偷拍| 男人亚洲天堂网| 中文av一区二区| 国精品人妻无码一区二区三区喝尿| 久久久视频精品| 台湾佬综合网| 污视频网址在线观看| 亚洲综合图片区| 日韩a级作爱片一二三区免费观看| 国产精品视频男人的天堂| 香蕉久久网站| 丰满少妇xbxb毛片日本| 欧美视频在线免费看| shkd中文字幕久久在线观看| 成人免费视频网址| 欧美激情91| 国产传媒在线看| 日韩一级免费一区| 黄色污网站在线观看| 一本一道久久久a久久久精品91|