War*_*ica 5 javascript variables
有没有办法将变量从字符串转换为数字?
例如,我有
var str = "1";
Run Code Online (Sandbox Code Playgroud)
我可以改成它吗?
var str = 1;
Run Code Online (Sandbox Code Playgroud)
Fyo*_*kin 12
尝试 str = parseInt( str, 10 )
(注意:第二个参数表示用于解析的基数;在这种情况下,您的数字将被解析为十进制)
尽管如此,在JavaScript中使用术语"类型"非常松散.你能解释为什么你关心变量的类型吗?
有三种方法可以做到这一点:
str = parseInt(str, 10); // 10 as the radix sets parseInt to expect decimals
Run Code Online (Sandbox Code Playgroud)
要么
str = Number(str); // this does not support octals
Run Code Online (Sandbox Code Playgroud)
要么
str = +str; // the + operator causes the parser to convert using Number
Run Code Online (Sandbox Code Playgroud)
做出明智的选择 :)
最好的办法:
var str = "1";
var num = +str; //simple enough and work with both int and float
Run Code Online (Sandbox Code Playgroud)
您还可以:
var str = "1";
var num = Number(str); //without new. work with both int and float
Run Code Online (Sandbox Code Playgroud)
或者
var str = "1";
var num = parseInt(str,10); //for integer number
var num = parseFloat(str); //for float number
Run Code Online (Sandbox Code Playgroud)
不:
var str = "1";
var num = new Number(str); //num will be an object. typeof num == 'object'
Run Code Online (Sandbox Code Playgroud)
仅在特殊情况下使用 parseInt,例如
var str = "ff";
var num = parseInt(str,16); //255
var str = "0xff";
var num = parseInt(str); //255
Run Code Online (Sandbox Code Playgroud)
您有多种选择:
一元运算+符: value = +value将使用 JavaScript 引擎的标准规则将字符串强制转换为数字。该数字可以具有小数部分(例如,+"1.50"是1.5)。字符串中的任何非数字(e科学记数法除外)都会生成结果NaN。此外,+""is 0,这可能不直观。
var num = +str;
Run Code Online (Sandbox Code Playgroud)该Number功能:value = Number(value)。做同样的事情+。
var num = Number(str);
Run Code Online (Sandbox Code Playgroud)的parseInt功能,通常与一个基数(基数): value = parseInt(value, 10)。这里的缺点是parseInt转换它在字符串开头找到的任何数字,但忽略字符串后面的非数字,所以parseInt("100asdf", 10)是100,不是NaN。顾名思义,parseInt只解析一个整数。
var num = parseInt(str, 10);
Run Code Online (Sandbox Code Playgroud)该parseFloat功能:value = parseFloat(value)。允许小数值,并始终以十进制(从八进制或十六进制)工作。parseInt对字符串末尾的垃圾做同样的事情,parseFloat("123.34alksdjf")是123.34.
var num = parseFloat(str);
Run Code Online (Sandbox Code Playgroud)因此,请选择适合您用例的工具。:-)