无法在这个位置找到: head2.htm
当前位置: 建站首页 > 新闻动态 > 行业新闻 >

javascript将非标值变换为标值

时间:2021-04-04 23:15来源:未知 作者:jianzhan 点击:
下列三个涵数将非标值变换为标值:Number() 、parseInt()和 parseFloat()Number()的变换标准1.Boolean值 true会被变换为1 false会被变换为0var correct = trueNumber(correct)var error = falseNumber(error)02.数据值 传

下列三个涵数将非标值变换为标值:Number() 、parseInt()和 parseFloat()

Number()的变换标准

1.Boolean值 true会被变换为1 false会被变换为0

var correct = true
Number(correct)
var error = false
Number(error)
0

2.数据值 传到甚么回到甚么

var sales = 10
Number(sales)
10

3.null 值,回到 0

var arg = null
Number(arg)
0

4.undefined,回到 NaN

var vara = undefined
Number(vara)
NaN

5.标识符串,遵照以下标准:

假如标识符串中只包括数据(包含前边带正号或负号的状况),则将其变换为十进制标值,即"1"

能变成 1,"123"能变成 123,而"011"能变成 11(留意:前导的零被忽视了)

var str = '1'
Number(str)
var str1 = '011'
Number(str1)
var str2 = '+1'
Number(str2)
var str3 = '-001'
Number(str3)
var str4 = '-121'
Number(str4)
-121

假如标识符串中包括合理的浮点文件格式,如"1.1",则将其变换为相匹配的浮等级值(一样,也会忽
略前导零)

var str = '1.1'
Number(str)
var str1 = '+1.1'
Number(str1)
var str2 = '-01.1'
Number(str2)
-1.1

假如标识符串中包括合理的十六进制文件格式,比如"0xf",则将其变换为同样尺寸的十进制整数金额值

假如标识符串是空的(不包括一切标识符),则将其变换为 0

var str = ''
Number(str)
0

假如标识符串中包括除所述文件格式以外的标识符,则将其变换为 NaN

var str = 'adfsfdsa'
Number(str)
NaN

6.假如是目标,则启用目标的 valueOf()方式,随后按照前边的标准变换回到的值。假如变换的結果是 NaN,则启用目标的 toString()方式,随后再度按照前边的标准变换回到的标识符串值

parseInt()变换标准

因为 Number()涵数在变换标识符串时较为繁杂并且不足有效,因而在解决整数金额的情况下更常见的是
parseInt()涵数。parseInt()涵数在变换标识符串时,大量的是看其是不是合乎标值方式。它会忽视字
符串前边的空格符,直到寻找第一个非空格符标识符。假如第一字符并不是数据标识符,parseInt()
便会回到 NaN;换句话说,用 parseInt()变换空标识符串会回到 NaN(Number()对空标识符回到 0)。如
果第一字符是数据标识符,parseInt()会再次分析第二字符,直至分析完全部事后标识符或是碰到了
一个非数据标识符。比如,"1234blue"会被变换为 1234,由于"blue"会被彻底忽视。相近地,"22.5"
会被变换为 22,由于小数点其实不是合理的数据标识符。

特定数量会危害到变换的輸出結果。比如:

var num1 = parseInt("10", 2); //2 (按二进制分析)
var num2 = parseInt("10", 8); //8 (按八进制分析)
var num3 = parseInt("10", 10); //10 (按十进制分析)
var num4 = parseInt("10", 16); //16 (按十六进制分析)

**大部分状况下,大家要分析的全是十进制标值,因而自始至终将 10 做为第二个主要参数是
十分必需的。**

parseFloat()变换标准

与 parseInt()涵数相近,parseFloat()也是以第一字符(部位 0)刚开始分析每一个标识符。并且
也是一直分析到标识符串结尾,或是分析到遇上一个失效的浮等级字标识符才行。换句话说,标识符串中的第
一个小数点是合理的,而第二个小数点便是失效的了,因而它后边的标识符串将被忽视。举例说明来讲,
"22.34.5"可能被变换为 22.34。

除开第一个小数点合理以外,parseFloat()与 parseInt()的第二个差别取决于它自始至终都是忽视前导
的零。parseFloat()能够鉴别前边探讨过的全部浮等级值文件格式,也包含十进制整数金额文件格式。但十六进制格
式的标识符串则自始至终会被变换成 0。因为 parseFloat()只分析十进制值,因而它沒有用第二个主要参数特定基
数的使用方法。最终也要留意一点:假如标识符串包括的是一个能解析为整数金额的数(沒有小数点,或是小数点后
全是零),parseFloat()会回到整数金额。

var num1 = parseFloat("1234blue"); //1234 (整数金额)
var num2 = parseFloat("0xA"); //0 
var num3 = parseFloat("22.5"); //22.5 
var num4 = parseFloat("22.34.5"); //22.34 
var num5 = parseFloat("0908.5"); //908.5 
var num6 = parseFloat("3.125e7"); //

parseInt()不可以变换浮点型标值,大家用parseFloat()来处理。

parseFloat()跟parseInt()类似,一样会从第一个非空标识符串刚开始分析,直至分析结束,或是碰到非浮点型标值文件格式(差别一),可是它会忽视前边全部的0,他沒有变换数量,只分析十进制的值(差别二)

console.log(parseFloat(' 123hehe'));//輸出123;
console.log(parseFloat('123hehe'));//輸出123;
console.log(parseFloat('01.2.3'));//輸出1.2;
console.log(parseFloat('0xa'));//輸出0

留意,假如标识符串能够分析为整数金额,则小数点后边的0不容易輸出

console.log(parseFloat('1.000'));//輸出1;

小结

之上上述是网编给大伙儿详细介绍的javascript将非标值变换为标值,期待对大伙儿有一定的协助,假如大伙儿有一切疑惑请帮我留言板留言,网编会立即回应大伙儿的。在此也十分谢谢大伙儿对诺心互联网网站的适用!

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: ajaxfeedback.htm
栏目列表
推荐内容


扫描二维码分享到微信