1、parseInt() 整型转换函数
(1) 函数简介
parseInt(string, radix)
String表示需要进行转换的参数,radix表示解析数字的基数。
radix的范围为:2--36,如果超出该范围【即传入的radix小于2或者大于36】,则返回NAN.
a、如果radix传入为0,则默认以十进制进行转换。
b、 如果在省略radix参数的情况下,传入的string参数带有“0x”,则将会以16进制进行转换;传入的string参数带有“0”,则将会以8进制进行转换。
一般情况下,学过的就八进制、十进制以及十六进制。而parseInt()函数可以使用2--36进制,因此测试了上述进制以外的其他进制。
如下:parseInt('25',3)如果需要将传入的参数以3进制的方式进行转换,得到结果为2
原因入下:由于八进制是用0至7的数表示,同理3进制是用0、1、2表示,而传入的参数为25,显然5大于3,所以被舍弃。
计算方式为:
而不是
parseInt('1f',14) 结果为1
另外强调一点,0进制是一个比较有争议的问题,在不同的浏览器上表现形式不同。parseInt(3,0) //结果可以为NAN,也可以为3【十进制方式处理】
parseInt(3,2) NAN,处理情况同上,参数和基数会进行比较,由于2进制由0、1表示,因此返回为NAN;parseInt('15',2) 结果为1
(2) 转换失败案例
parseInt('abc123'); -->结果为NAN
parseInt('1abc23'); -->结果为1
根据执行结果可知,如果转换的字符串中所包含的字母,放置在首位,则转换失败,为NAN。
但只要首位为非数字类型,则会产生为NAN,除此之外均可正常转换。
【函数在遇到第一个异常字符时就会放弃,无论剩余的那部分字符串是否可用】
2、parseFloat()函数
(1) 函数简介
parseFloat函数同整型转换函数不同,默认转换为十进制的数。不涉及到其他进制,因此该函数需要传入的参数只有一个。
同整型转换函数相同,该函数同样在遇到第一个异常字符时就会放弃,无论剩余的那部分字符串是否可用。
(2) 参数可含有指数
parseFloat('123e-2');-->1.23
课外知识:123e-2表示的是
2、isNaN()函数
(1) 函数简介
用于判断某个字符串不是数字,如果参数属于数字,返回结果为true,反之则为false。
3、eval()函数
(1) 函数简介
类似于数据库中的动态执行语句,使用该函数,则会执行函数内的参数。
(2) 案例
function getEvalVal(){
eval("var i = 1")
return i;
}
执行完成后,打印出的结果为1
说明通过使用eval函数后,该函数执行内部参数语句,因此i的值为1