话不多说,直接正文。
正文
常用方法为这三种
~~
按位取反再取反,作用是把字符串变为整数数值。- Number(str) 会保留小数点
- parseInt(str) 化为整数数值
console.log(Number("121"));
console.log(parseInt("121"));
console.log(~~"121");
console.log(Number("-121"));
console.log(parseInt("-121"));
console.log(~~"-121");
这三种方法对于正整数和负整数,结果都是正确且一致的。
console.log(Number("121.213"));
console.log(parseInt("121.213"));
console.log(~~"121.213");
对于带有小数点的正确数值格式的字符串,只有Number(str) 会保留小数点,其余均舍弃小数点后面的值。
console.log(Number("-1sa11")); // NaN
console.log(parseInt("-1sa11")); // -1
console.log(~~"-1sa11"); // 0
但对于错误的数值格式的字符串,三者表现各不相同。
- Number(str) 会如我们所期待的返回 NaN
- parseInt(str) 会将合法字符转换,直至遇见不合法的字符为止。如果第一个字符就不合法,则会返回NaN
- ~~ 会返回 0