javascript高級程序設計學習之數值轉換 |Number(),parseInt(),parseFloat()

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

將非數值轉換成數值的函數有三個:Number(),parseInt(),parseFloat();

小記tip:Number()可以用于任何數據類型;parseInt(),parseFloat()針對的是將字符串;

Number()的轉換規則如下:主要舉一些特殊例子;

第一類:null,undefined

 console.log(Number(null)) //返回的是0console.log(Number(undefined)) //返回的是NaN;

第二類:字符串

  /*************如果是字符串************/console.log(Number('-123')) //返回-123   //字符串只包含數字(包括字符串首個字符為加減號),則將其轉換成十進制數字,并且如果首個字符為0則會忽略console.log(Number('+123'))  //返回123console.log(Number('123'))  //返回123console.log(Number('0123'))  //返回123//如果字符串中包含有效的浮點格式,則相對應的轉換成對應的浮點數,和上述規則類似,首個字符為o則忽略console.log(Number('01.2')) //返回1.2console.log(Number('1.2')) //返回1.2//如果字符串包含有效的十六進制數,則轉換成大小相同的十進制數console.log(Number('0xaf')) //返回175//如果字符串為空,則返回0;console.log(Number('')) //0//除去以上格式之外,則返回NaN;console.log(Number('0120sd'))  //NaN

第三類:object 按照javascript高級程序設計(第三版),如果是對象,則調用對象的valueOf()方法,然后依照前面的規則轉換返回的值,如果轉換的結果為NaN(非數值),則調用對象的toString()方法,然后依照前面的規則轉換返回的值;下面來直接看測試代碼:

        var ary_=new Array('20',25);console.log(ary_.valueOf());//['20',25]; 數組的實例對象 ,非數值console.log(ary_.toString())//20,25 字符串console.log(Number(ary_))  //NaNvar boolean=new Boolean(85)console.log(boolean.valueOf());//trueconsole.log(boolean.toString())//字符串trueconsole.log(Number(boolean))//1var date=new Date(2018,3,18)console.log(date.valueOf())  //1523980800000console.log(date.toString())  //Wed Apr 18 2018 00:00:00 GMT+0800 (中國標準時間)console.log(Number(date))  //1523980800000function test(){this.name='zh';}console.log(test.valueOf())//返回函數本身,非數值console.log(test.toString())//返回函數的字符串形式console.log(Number(test))//NaNvar num=new Number(52);console.log(num.valueOf())//數值52console.log(num.toString())//字符串‘52’console.log(Number(num))//數值52var obj={"name":"zh","age":"25","salary":20000}console.log(obj.valueOf());//返回本身,非數值console.log(obj.toString());//[object Object] 字符串console.log(Number(obj))  //NaNvar str=new String('sdsf52');console.log(str.valueOf())//'sdsf52' ,字符串的值console.log(str.toString())console.log(Number(str))//NaN

parseInt()轉換規則

輸入圖片說明

tip:1:忽略字符串前面的空格,從第一個字符,如果第一個字符串不是數字字符或者負號,該函數就會返回NaN,一直解析到最后一個字符。如果中途遇到一個非數字的字符,則就會停止,例如parseInt('2025zh526'),返回的2025

tip2:parseInt()會識別整數的格式,是十進制還是八進制亦或十六進制;以0x開頭的,并且后面是數字的為 十六進制;以0開頭后面是數字的為八進制;但是在ECMAScript 5 js引擎下,parseInt()不具有解析八進制的能力,例如parseInt('050');返回的是50;

tip3:為了消除上述的困惑,parseInt()提供第二個參數,來確定是按照那種進制解析字符串,見如下例子

console.log(parseInt('ad'))   //NaN
console.log(parseInt('ad',16)) //173
console.log(parseInt('10',8))  //8
console.log(parseInt('10',12))  //12
console.log(parseInt('11',12))  //13  -->12+1
console.log(parseInt('3',2))  //NaN

["1","2","3"].map(parseInt) 面試題解惑

parseFloat()轉換規則

tip1:parseFloat()只解析十進制值;

tip2:忽略字符串前面的空格,從第一個字符(如果第一個字符為0則會忽略),一直解析到字符串的尾部,直到解析到一個無效的浮點數字符為止,字符串的第一個小數點是有效的,第二個為無效,第二個小數點后面的字符會被忽略,下面見幾個特殊的例子。

tip3:字符串包含一個整數,或者小數點后面都是0,則返回整數

        console.log(parseFloat('0dsfa'))//0;console.log(parseFloat('0xaf'))//0;console.log(parseFloat('052dsfa'))//52;console.log(parseFloat('dsd0dsfa'))//NaN;console.log(parseFloat('520'))//520;console.log(parseFloat('3.14e5'))//314000;console.log(parseFloat('052.0'))//52console.log(parseFloat('052.12.68'))//52.12console.log(parseFloat(''))//NaN

轉載于:https://my.oschina.net/u/3407699/blog/1645043

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

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

相關文章

軟件的可維護性

可以把軟件的可維護性定性地定義為:維護人員理解、改正、改動或改進這個軟件的難易程度。 提高可維護性是支配軟件工程方法學所有步驟的關鍵目標。

服務器內存延遲,內存帶寬、延遲性能測試

內存帶寬、延遲性能測試華為FusionServer 2488H V5服務器主板集成了48個內存插槽,但送測機器配備有限。由于送測機型整合了四通道內存控制器,這樣使得平臺的內存帶寬得到了明顯的提升。SiSoftware Sandra Lite 2011中提供了內存帶寬、內存延遲和緩存性能…

Git學習的最佳教程

身為網頁設計師或者網頁開發者的你,可能已經聽說過Git這個正快速成長的版本控制系統。它由GitHub維護;GitHub是一個開放性的、存儲眾人代碼的網站。如果你想學習如何使用Git,請參考本文。在文章最后,我們羅列了其他Git學習資源。 …

如何使用idea快速創建SpringBoot項目

文章目錄一、二、三、四、五、一、 二、 三、 四、 五、

解決pip安裝模塊報錯Cannot fetch index base URL http://pypi.python.org/simple/

產生這個問題的原因呢和github一樣,因為他們用的cdn被墻.經小伙伴反饋,解決辦法如下. 通過指定國內鏡像源來安裝: pip --trusted-host 鏡像源 install 模塊名 -i 鏡像源路徑 例如:pip --trusted-host pypi.doubanio.com install paramiko -i http://pypi.doubanio.com/simple 注…

閃光css,CSS實現的一閃而過的圖片閃光效果

只需要兩個html元素和一個css變換,我就能創造出我自己的閃光效果。讓我們來實現它!呈現光澤圖片下面就是這張addy在他博客上使用的圖片:比我需要的要大一些,但你可以把它裁剪一些。注意:左邊的那張是純白色的&#xff…

什么是可重用性

所謂重用(reuse)是指同一事物不做修改或稍加改動就在不同環境中多次重復使用。大量使用可重用的軟件構件來開發軟件,可以從下述兩個方面提高軟件的可維護性。 (1) 通常,可重用的軟件構件在開發時都經過很嚴格的測試,可…

MATLAB矩陣操作和算術運算符

矩陣的表示 矩陣之間用空格或者是逗號間隔 矩陣可以拼接(可以用矩陣拼接) 實部矩陣和虛部矩陣構成復數矩陣,一一對應。 冒號表達式: 格式: e1:e2:e3 e1表示初始值 e2表示步長 e3表示終止值 e2省略則e2為1 lins…

循序漸進學好編程,不要太急!!!

軟件開發人員是一個日新月異的領域—–IT中的大師,今天的編程方式與明天的編程或許截然不同,技術在不斷地革新,新語言、新平臺的如雨后春筍般出現、更好的解決方案的冒出,因此我們需要跟得上節奏,我們別無選擇&#xf…

django學習之路

1. 菜鳥教程 http://www.runoob.com/django/django-first-app.html 2. https://blog.csdn.net/Sunshine_ZCC/article/details/73918408轉載于:https://www.cnblogs.com/haimishasha/p/9189199.html

x230無線網卡驅動服務器版,ThinkPad X230網卡驅動

ThinkPad X230網卡驅動是一款專為ThinkPad X230打造的無線網卡驅動程序,當然,這款驅動也支持其他機型,包括ThinkPad X220,X220i,X220 Tablet,X220i Tablet等等,如果您的筆記本電腦屬于下列所列機型中的一款,歡迎您來歐…

文檔

文檔是影響軟件可維護性的決定因素。由于長期使用的大型軟件系統在使用過程中必然會經受多次修改,所以文檔比程序代碼更重要。軟件文檔應該滿足下述要求: (1) 必須描述如何使用這個系統,沒有這種描述時即使是最簡單的系統也無法使用。 (2)…

學成在線--0.項目概述

文章目錄0.前言1.功能架構2.技術架構3.技術棧4.開發步驟0.前言 當前市場的在線教育模式多種多樣,包括:B2C、C2C、B2B2C等業務模式,學成在線采用B2B2C業務模式,即向 企業或個人提供在線教育平臺提供教學服務,老師和學生…

【Java學習】JDBC可以再深一點理解

JDBC驅動程序 JDBC驅動程序是JDBC API中實現定義的接口。JDBC是java語言中的與數據庫連接的接口。也就是說JDBC是Java API,使得Java可以與數據庫進行連接,而JDBC驅動程序是JDBC API,驅動JDBC進一步與數據庫進行交互。 例如:使用JD…

想成為優秀的技術人員你必須做到的幾件事情

找工作的這幾天,收獲頗多。思考得最多的問題可能就是對未來的一個規劃。無意中看到下面幾條經驗,發現和自己想的也差不多,就分享出來。我要求自己做到這些,同時也希望對您也有所幫助。 1、保持學習 一個非常重要的觀點是&#x…

第 五 課 golang語言變量

1 變量三種聲明: (第一種的var和類型都是多余; 第二種最簡潔,但是第二種只能用在函數中,不能是全局變量的聲明) 第一種: var v_name v_type(注意順序)v_name value pack…

wordpress 評論ajax,WordPress教程 WordPress實現提交評論ajax翻頁效果教程

WordPress提交評論ajax翻頁的效果會很大的提高用戶體驗度,雖然我們一般的個人WordPress博客評論也不會有很多,但是用戶體驗至上嘛,所以WordPress主題站小編為大家分享WordPress實現提交評論ajax翻頁效果教程,希望能給大家能用得上…

Lombok的使用方法

文章目錄0.Lombok簡介1.在項目中添加Lombok的依賴2.在IDEA開發工具中添加Lombok插件0.Lombok簡介 Lombok是一個實用的java工具,使用它可以消除java代碼的臃腫,Lombok提供一系列的注解,使用這些注解可 以不用定義getter/setter、equals、構造…

【Python3網絡爬蟲開發實戰】4-解析庫的使用-3 使用pyquery

在上一節中,我們介紹了Beautiful Soup的用法,它是一個非常強大的網頁解析庫,你是否覺得它的一些方法用起來有點不適應?有沒有覺得它的CSS選擇器的功能沒有那么強大?如果你對Web有所涉及,如果你比較喜歡用CS…

世上最偉大的十個公式,質能方程排名第五

英國科學期刊《物理世界》曾讓讀者投票評選了“最偉大的公式”,最終榜上有名的十個公式既有無人不知的112,又有著名的Emc2;既有簡單的-圓周公式,又有復雜的歐拉公式…… 從什么時候起我們開始厭惡數學?這些東西原本…