300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > javascript转换成整数方法有哪些?

javascript转换成整数方法有哪些?

时间:2020-09-02 16:08:32

相关推荐

javascript转换成整数方法有哪些?

web前端|js教程

js,转整数

web前端-js教程

青蛙过河源码,vscode关闭打开的文件,ubuntu 查 usb,tomcat里面没有项目,兼职 爬虫代理,php now 函数,黑龙江seo优化高手,采集网站系统源码,苹果cms仿优酷v10模板lzw

本文将会列举并说明JavaScript 把一个number(或者numerical的对象)转换成一个整数相关方法。

加壳工具源码,vscode怎么进行调试,ubuntu上装git,tomcat7wdk,lua脚本爬虫,php怎么多线程,泰州seo排名怎么样,免费门户网站源码,网页模板小偷注册机lzw

使用parseInt

视频源码是什么,怎么强制关闭ubuntu,网络公司爬虫,field php,重庆seo承包lzw

parseInt的语法如下:parseInt(string, radix)

参数string的表示要解析的字符串,也可以是一个对象,会自动调用对象的toString函数得到要解析的字符串。

parseInt的第二个参数,可以指定要解析的数字的基数,注意该值介于 2 ~ 36 之间,如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。比如下面的代码,结果为8,这样可以很方便的把其他的进制的数字转换为10进制的数字:

parseInt(10,8) // 结果为8

当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

举例,如果 string 以 “0x” 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

使用Math.trunc

Math.trunc() 方法会将数字的小数部分去掉,只保留整数部分。比如以下代码:

Math.trunc(13.37) // 13Math.trunc(42.84) // 42Math.trunc(0.123) // 0Math.trunc(-0.123) // -0Math.trunc("-1.123") // -1Math.trunc(NaN)// NaNMath.trunc("foo") // NaNMath.trunc() // NaN

当传入的类型不是数字的时候,会自动做瘾式转换。但是如果是一个非numerical的参数的时候,返回NaN。

IE浏览器并不支持这个方法,所以可以考虑polyfill:

Math.trunc || (Math.trunc = function(v){ return v < 0 ? Math.ceil(v) : Math.floor(v); // 使用Math.floor和Math.ceil方法})// 或者if (!Math.trunc) { Math.trunc = function(v) { v = +v; if (!isFinite(v)) return v;return (v - v % 1) || (v 0 // -0 -> -0 // 0.2-> 0 // -0.2-> -0 // 0.7-> 0 // -0.7-> -0 // Infinity -> Infinity // -Infinity -> -Infinity // NaN-> NaN // null-> 0 };}

二进制位运算

对于numerical的对象n,可以通过如下的方式来转换为整数:

~~n 双重位取反(Double bitwise NOT)

n | n 位或运算(Bitwise OR)

n | 0 和0的位或运算(Bitwise OR with 0)

n << 0 位左移运算0位(Bitwise left shift)

n >> 0 位右移运算0位(Bitwise right shift)

n & n 为与运算(Bitwise AND)

比如代码如下:

~~1.23 // 1 -1.2 | -1.2 // - 1 -1.2 | 0 // - 1 3.4 >> 0 // 3 3.2 << 0 // 3 5.5 & 5.5 // 5 ~~"1.2" // 1.2

【推荐学习:javascript高级教学】

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。