[javascript|基本概念|Number]學習筆記

Number類型的值:整數/浮點數值

?

整數

十進制 ?e.g.: var intNum = 50;

八進制 ?(嚴格模式下無效,解析錯誤)字面值首位必須是0,之后的數字序列為0~7 ?e.g.: var intNum = 070; //解析為十進制56 (如果字面值數值超出了范圍,前導0將被忽略,后面的數值將被當做十進制數值解析 e.g.: var intNum = 078; //無效的八進制數字,解析為十進制78)

十六進制 ?字面值的前兩位必須是0x(或0X),之后的數據序列為0~7或A~F(可大寫,亦可小寫) ?e.g.:var intNum = 0xA; //解析為十進制10

算數計算時,所有以八進制和十六進制表示的數值最終都會轉換成十進制數值計算

?

浮點數

數值中必須包含一個小數點,且小數點后面必須至少有一個數字 e.g.:?var floatNum = 1.5;(小數點前面可以沒有整數,e.g.:?var floatNum = .5; //有效,解析為0.5,但不推薦)

如果小數點后面沒有數字,將被解析為整數值?e.g.:?var floatNum = 5.; //解析為整數5 (因為浮點數保存需要的內存空間是整數保存的兩倍,ECMAScript會不失時機地將浮點數值轉為整數值)

科學計數法 ?極大或極小的數值可附加e(或E)來表示,等同于e前面的數值乘以10的指數次冪

?

數值范圍

最大值:Number.MAX_VALUE?1.7976931348623157e+308

最小值:Number.MIN_VALUE?5e-324

超出最值,自動轉換成Infinity/-Infinity ?無窮值無法參與計算 (Number.POSITIVE_INFINITY/Number.NEGATIVE_INFINITY也分別保存著Infinity/-Infinity)

判斷是否是有窮值 ?isFinite(arg) ?arg可以為任何類型的數據,非Number數據將隱式轉換成Number數據

?

NaN

非數值(Not a Number)保存一個本來要返回數值但未返回數值的數據 如任何數值除以0,返回NaN

任何與NaN的操作都會返回NaN

NaN與任何值都不想等,包括NaN本身

判斷是否未NaN ?isNaN(arg) ?arg可以為任何類型的數據,非Number數據將隱式轉換成Number數據

?

數值轉換

Number()/parseInt()/parseFloat()

Number()可用于任何數據類型轉換成數值 ? ?parseInt()/parseFloat()一般用于字符串轉換成數值

Number()轉換規則:? ? ? ? ? ? ? ?

Boolean ? ?true-->1 ? ?false-->0

Number ? ?返回本身

null ? ? ? ? ?0

undefined NaN

String ? ? ? a/只包含數字(包括前面帶正好或符號)-->十進制數值 (前導為0的忽略0,不會轉換成八進制/前導為0x的,轉換為十六進制大小的十進制)

? ? ? ? ? ? ? ? b/只包含浮點-->對應的浮點數值(前導0被忽略)

? ? ? ? ? ? ? ? c/只包含空字符串-->0

? ? ? ? ? ? ? ? d/包含其他字符-->NaN

parseInt()轉換規則:(正因為Number()處理字符串轉換過于復雜,一般字符串轉換用parseInt()比較好)

主要看其是否符合數值模式

忽略字符串前面的空格,直到找到第一個非空格字符

a/第一個字符不是數字或正負號-->NaN ?e.g.:parseInt("abcd")-->NaN ?e.g.:parseInt("")-->NaN(區別Number("")-->0)

b/第一個字符是數字字符,順序解析第二個,直到解析完所有字符或遇到非數字字符結束-->已成功解析為數字的數字字面量?e.g.:parseInt("1234blue")-->1234

c/能夠解析Number類型的整數的各種格式:十進制/八進制/十六進制(parseInt()可以傳遞第二個參數:多少進制;十六進制可以不帶前面的0x,推薦傳遞帶兩個參數的方式)?e.g.:parseInt("0xA")-->10 ? ?parseInt("A", 16)-->10

?parseFloat()轉換規則:

類似parseInt()

字符中有兩個以上的小數點時,第一個小數點有效,第二個之后都無效,且后面的字符被忽略 ?e.g.:parseFloat("11.22.33")-->11.22

只解析十進制格式字符串,沒有第二個參數指定轉換方式

十六進制格式字符串-->0?e.g.:parseFloat("0xA")-->0

沒有小數點的整數字符串-->整數?e.g.:parseFloat("1234blue")-->1234

科學計數法?e.g.:parseFloat("3.14e2")-->314

轉載于:https://www.cnblogs.com/bsj2016/p/5462409.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458693.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458693.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458693.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[轉]深入理解linux內核list_head

http://blog.chinaunix.net/uid-27122224-id-3277511.html 深入理解linux內核list_head的實現 2012-07-17 17:37:01 分類: LINUX 前言:在linux源代碼中有個頭文件為list.h。很多linux下的源代碼都會使用這個頭文件,它里面定義 了一個結構,以及…

xcode左側不顯示工程文件目錄,提示NO Filter Results

解決辦法: What solved was to go to Navigate > Reveal in Project Navigator . After this, the structure appeared again.

【VC++技術雜談005】如何與程控儀器通過GPIB接口進行通信

在工控測試系統中,經常需要使用到各類程控儀器,這些程控儀器通常具有GPIB、LAN、USB等硬件接口,計算機通過這些接口能夠與其通信,從而實現自動測量、數據采集、數據分析和數據處理等操作。本文主要介紹如何與程控儀器通過GPIB接口…

標題在上邊框中的html(fieldset標簽)

<fieldset> <legend>標題</legend> 內容 </fieldset> 轉載于:https://www.cnblogs.com/lswbk/p/4952820.html

移除項目中的CocoaPods

在項目中移除CocoaPods cocoaPods雖然很方便&#xff0c;但是我是真心的不喜歡用它&#xff0c;總是出錯如果你覺得CocoaPods讓你的項目出現了問題&#xff0c;不好用甚至是惡心&#xff0c;想將其從項目中徹底移除&#xff0c;也有方法&#xff1a; 1.刪除工程文件夾下的Podf…

ShellExecute使用詳解

有三個API函數可以運行可執行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因為使用復雜&#xff0c;比較少用。 2.WinExec主要運行EXE文件。如&#xff1a;WinExec(Notepad.exe Readme.txt, SW_SHOW); 3.ShellExecute不僅可以運行EXE文件&#xff0c;也可以運行…

javascript筆記整理(對象基礎)

一、名詞解釋 1.基于對象&#xff08;一切皆對象&#xff0c;以對象的概念來編程&#xff09; 2.面向對象編程(Object Oriented Programming&#xff0c;OOP) A.對象(JavaScript 中的所有事物都是對象) B.對象的屬性和行為 屬性:用數據值來描述他的狀態 行為:用來改變對象行為的…

java的安裝和配置

JRE (JAVA Runtime Enviroment java運行環境),包括JVM(java虛擬機)和java程序所需的核心功能類庫&#xff0c;如果只是運行java程序&#xff0c;只需安裝JRE。 JDK &#xff08;Java Development Kit 開發工具包&#xff09;包括開發JAVA程序時所需的工具&#xff0c;包括JRE…

#if, #ifdef, #ifndef, #else, #elif, #endif的用法

#ifdef的用法 靈活使用#ifdef指示符&#xff0c;我們可以區隔一些與特定頭文件、程序庫和其他文件版本有關的代碼。 代碼舉例&#xff1a;新建define.cpp文件 &#xff03;include "iostream.h" int main() { #ifdef DEBUG cout<< "Beginning ex…

redhat 6.6 安裝 (LVM)

http://www.cnblogs.com/kerrycode/p/4341960.html轉載于:https://www.cnblogs.com/zengkefu/p/4954955.html

MFC對話框最小化到托盤

1、在資源中的Icon中導入一個自己喜歡的圖標&#xff0c;ID命名為IDR_MAINFRAME&#xff0c;將先前的IDR_MAINFRAME的圖標刪除掉&#xff1b; 2、在自己的Dialog頭文件中定義一個變量 NOTIFYICONDATA m_nid&#xff0c;關于該結構體的具體信息可以查閱MSDN&#xff1b; 3、添加…

Android acache讀后感

今天了解到了一個android輕量級的開源緩存框架,(github&#xff1a;https://github.com/yangfuhai/ASimpleCache),花了一點時間研究了一下源代碼&#xff0c;大概的思路就是每個緩存目錄對應一個Acache類&#xff0c;通過mInstanceMap關聯&#xff08;個人覺得這個主要是減少對…

continue break

塊作用域 一個塊或復合語句是用一對花括號&#xff08;"{}"&#xff09;括起來的任意數量的簡單的java語句。塊定義了變量的作用范圍。 1、嵌套塊是方法內的嵌套&#xff0c;不包括類的花括號。在嵌套塊內的 變量是不可以重復定義的。 2、不允許重復定義的是局部變…

GetVersionEx 獲取系統版本信息

轉自&#xff1a;http://blog.csdn.net/yyingwei/article/details/8286658 最近在windows 8上獲取系統版本信息需要調用系統API&#xff0c;于是用到了GetVersionEx。 首先看一看函數原型&#xff1a; [cpp] view plaincopy BOOL GetVersionEx(POSVERSIONINFO pVersionInformat…

popoverController(iPad)

一、設置尺寸 提示&#xff1a;不建議&#xff0c;像下面這樣吧popover的寬度和高度寫死。 1 //1.新建一個內容控制器2 YYMenuViewController *menuVc[[YYMenuViewController alloc]init];3 4 //2.新建一個popoverController&#xff0c;并設置其內容控制器5 s…

靜態成員變量和非靜態成員變量的對比

靜態成員變量和非靜態成員變量的對比 1、存儲的數據 靜態成員變量存儲的是所有對象共享的數據 非靜態成員變量存儲的是每個對象特有的數據 2、存儲位置 靜態成員變量是隨著類的加載在方法區的靜態區開辟內存了 非靜態成員變量是隨著對象的創建再堆中開辟內存 3、調用方式 靜態成…

c++的thread類(c++線程簡單用法)

最近看了一個Thread類&#xff08;忘記在哪里看的了&#xff09;&#xff0c;感覺不錯。 創建線程時線程對應的函數必須是類的靜態成員&#xff0c;由于靜態成員無法訪問類的非靜態成員&#xff0c;我從前都是把對象的指針作為參數傳遞給線程函數來避免這個問題&#xff0c;但是…

[LeetCode]Merge Sorted Array

題目描述:(鏈接) Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:You may assume that nums1 has enough space (size that is greater or equal to m n) to hold additional elements from nums2. The number of eleme…

[LeetCode]Integer to Roman

題目描述:(鏈接&#xff09; Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. 解題思路&#xff1a; 1 class Solution {2 public:3 string intToRoman(int num) {4 vector<int> values{1000…

[c++]代理對象模式

代理對象 <code class"hljs cpp has-numbering" style"display: block; padding: 0px; box-sizing: border-box; font-family: Source Code Pro, monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius:…