1. 程式人生 > >js中資料型別轉換的三種方法 重要

js中資料型別轉換的三種方法 重要

方法主要有三種

轉換函式、強制型別轉換、利用js變數弱型別轉換。

1. 轉換函式:

js提供了parseInt()和parseFloat()兩個轉換函式。前者把值轉換成整數,後者把值轉換成浮點數。只有對String型別呼叫這些方法,這兩個函式才能正確執行;對其他型別返回的都是NaN(Not a Number)。

一些示例如下:

複製程式碼 程式碼如下:
parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN

parseInt()方法還有基模式,可以把二進位制、八進位制、十六進位制或其他任何進位制的字串轉換成整數。基是由parseInt()方法的第二個引數指定的,示例如下:

複製程式碼 程式碼如下:
parseInt("AF", 16); //returns 175
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10

如果十進位制數包含前導0,那麼最好採用基數10,這樣才不會意外地得到八進位制的值。例如:

複製程式碼 程式碼如下:
parseInt("010"); //returns 8
parseInt("010", 8); //returns 8
parseInt("010", 10); //returns 10

parseFloat()方法與parseInt()方法的處理方式相似。
使用parseFloat()方法的另一不同之處在於,字串必須以十進位制形式表示浮點數,parseFloat()沒有基模式。

下面是使用parseFloat()方法的示例:

複製程式碼 程式碼如下:
parseFloat("1234blue"); //returns 1234.0
parseFloat("0xA"); //returns NaN
parseFloat("22.5"); //returns 22.5
parseFloat("22.34.5"); //returns 22.34
parseFloat("0908"); //returns 908
parseFloat("blue"); //returns NaN

2. 強制型別轉換

還可使用強制型別轉換(type casting)處理轉換值的型別。使用強制型別轉換可以訪問特定的值,即使它是另一種型別的。
ECMAScript中可用的3種強制型別轉換如下:
Boolean(value)——把給定的值轉換成Boolean型;
Number(value)——把給定的值轉換成數字(可以是整數或浮點數);
String(value)——把給定的值轉換成字串。
用這三個函式之一轉換值,將建立一個新值,存放由原始值直接轉換成的值。這會造成意想不到的後果。
當要轉換的值是至少有一個字元的字串、非0數字或物件(下一節將討論這一點)時,Boolean()函式將返回true。如果該值是空字串、數字0、undefined或null,它將返回false。

可以用下面的程式碼段測試Boolean型的強制型別轉換。

複製程式碼 程式碼如下:
Boolean(""); //false – empty string
Boolean("hi"); //true – non-empty string
Boolean(100); //true – non-zero number
Boolean(null); //false - null
Boolean(0); //false - zero
Boolean(new Object()); //true – object

Number()的強制型別轉換與parseInt()和parseFloat()方法的處理方式相似,只是它轉換的是整個值,而不是部分值。示例如下:

複製程式碼 程式碼如下:
用  法 結  果
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100

最後一種強制型別轉換方法String()是最簡單的,示例如下:

複製程式碼 程式碼如下:
var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //won't work, causes an error

3. 利用js變數弱型別轉換

舉個小例子,一看,就會明白了。

複製程式碼 程式碼如下:
<script>
var str= '012.345 ';
var x = str-0;
x = x*1;
</script>

上例利用了js的弱型別的特點,只進行了算術運算,實現了字串到數字的型別轉換,不過這個方法還是不推薦的

相關推薦

JS判斷資料型別方法

JavaScript 中常見的幾種資料型別: 基本型別:string,number,boolean 特殊型別:undefined,null 引用型別:Object,Function,Function,Array,Date,... typeof typeof 返

js資料型別轉換方法 重要

方法主要有三種 轉換函式、強制型別轉換、利用js變數弱型別轉換。 1. 轉換函式: js提供了parseInt()和parseFloat()兩個轉換函式。前者把值轉換成整數,後者把值轉換成浮點數。只有對String型別呼叫這些方法,這兩個函式才能正確執行;對其他型別返回的都是NaN(Not a Nu

JS常用資料型別轉換方法大全

一、字串轉換成數字 字串轉換成數字最常用的方法有兩個:parseFloat和parseInt。parseFloat是把一個字串轉換為一個浮點數,parseInt是把一個字串轉換為一個整數。示例如下: var num = parseInt('123abc'); //返回12

javascript判斷資料型別的四方法及typeof、instanceof、constructor、toString

在 ECMAScript 規範中,共定義了 6種資料型別,分為 基本型別 和 引用型別 兩大類,如下所示: 基本型別(簡單型別):String、Number、Boolean、Undefined、Null 。由於其佔據空間固定,是簡單的資料段,為了便於提升變數查

vc刪除資料夾以及資料的內容的方法

BOOL CDeleteFolderDlg::DeleteFolder(CString lpszPath)//刪除資料夾以及資料夾內的檔案 { CHAR szFromPath[_MAX_PATH];//原始檔路徑memcpy(szFromPath, lpszPath, lp

判斷JS資料型別的四方法

說到資料型別,我們先說一下JavaScript 中常見的幾種資料型別: 基本型別:string,number,boolean 特殊型別:undefined,null 引用型別:Object,Function,Function,Array,RegExp,Date,... 很多時候我們都需要通過判斷變

JS獲取元素的第二方法

utf display 獲取 重復執行 ecb sed 文檔 練習 elements 1.靜態方法   var oUl = document.getElementById(‘‘); 2.動態方法   document.getElementsByTagName(‘‘);

JS資料型別的分類

JS中資料型別的分類: (1).基本資料型別: 1.數字(number) 2.字串(string) 3.布林(boolean) 4.null 5.undefined (2).引用資料型別: 1.物件資料型別(object) 2.函式資料型別(function)

【微信小程式】在js匯入第三方js或自己寫的js,使用外部js的function的兩方法 import和require的區別使用方法

如下 定義了一個外部js檔案,其中有一個function import lunaCommon from '../lunaCommon.js'; var ctx = wx.getStorageSync("ctx"); var filter = "/ms-code"; var apis

js型別轉換

先介紹一下 typeof 的使用方法: typeof(mix) 或者 typeof mix 其中 mix 可以是任何資料型別 js有六種資料型別: 五種簡單資料型別,又叫基本資料型別,分別為:Number,String,Boolean,Null,Undefined; 一種

VHDL資料型別轉換與移位(STD_LOGIC_ARITH與NUMERIC_STD)

1. VHDL目前常用庫檔案 目前寫VHDL程式時,大部分人已經熟悉的庫呼叫如下所示: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsi

【Javascript】JS遍歷陣列的方法:map、forEach、filter

前言   近一段時間,因為專案原因,會經常在前端對陣列進行遍歷、處理,JS自帶的遍歷方法有很多種,往往不加留意,就可能導致知識混亂的現象,並且其中還存在一些坑。前端時間在ediary中總結了js原生自帶的常用的對陣列遍歷處理的方法,分別為:map、forEach、filter,在講解知識點的同時,會類比相識

jsthis指向的情況

js中this指向的幾種情況 一、全域性作用域或者普通函式自執行中this指向全域性物件window //全域性作用域 console.log(this);//Window //普通函式 function fn(){ console.log(this); //Wi

js資料型別轉換

1、toString():將其它型別的資料轉換為字串型別。 var num = 12306; var str= num .toString(); console.log(str); // 12306 console.log(typeof str); // string

JS判斷資料型別的4方法

4種判斷方法分別是: typeof instanceof prototype屬性 constructor屬性 可判斷的型別對比如下圖: // 建構函式名方法 function getConstructorName(data) {

js判斷資料型別是哪

var   gettype=Object.prototype.toString         gettype.call('aaaa')        輸出      [object String]         gettype.call(2222)         輸

JavaScript資料型別轉換

在js中,資料型別轉換分為顯式資料型別轉換和隱式資料型別轉換。 1, 顯式資料型別轉換 a:轉數字: 1)Number轉換: 程式碼: var a = “123”; a = Number(a);   注意: a) 如果轉

vue錨點的方法

第一種: router.js中新增 mode: 'history', srcollBehavior(to,from,savedPosition){ if(to.hash){ return { selector:to.hash } } } 元件: &

java向多執行緒傳遞引數的方法詳細介紹

在傳統的同步開發模式下,當我們呼叫一個函式時,通過這個函式的引數將資料傳入,並通過這個函式的返回值來返回最終的計算結果。但在多執行緒的非同步開發模式下,資料的傳遞和返回和同步開發模式有很大的區別。由於執行緒的執行和結束是不可預料的,因此,在傳遞和返回資料時就無法象函式一樣通過

在Talend 的tMap元件資料型別轉換函式總結(一)

1.1 字串與數值型別相互轉換 1.1.1 字串轉為浮點型、整形 1)Float.parseFloat(row3.working_time ) Float.valueOf(String s) Float.valueOf(int s) 2)Integer.pars