CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

js字符串转数字小结-免费源码丞旭猿

字符串转数字常用方法: -,*,/,>>, <<,>>>,~~,parseInt,parseFloat,一元操作符+。这些转换方法都会默认对字符串进行trim()操作。

方法简单分类:

1. -,*,/,一元+操作符,Number()

将这几个分为一类是因为对非数值应用这几个操作符时,都会隐式调用Number(),Number()对字符串的转换规则如下(引用红宝书原文):

·如果字符串中只包含数字(包括正负号),将其转为十进制(忽略前置0)

·如果字符串中只包含有效浮点格式,转为对应浮点数值(忽略前置0)

·如果字符串以0x开头并包含有效的十六进制格式(整数),转换为同等大小十进制整数值

·空字符串为0

·字符串包含以上格式外的,返回NaN

简单列举一下Number方法:

Number()// 0Number(0xa)//10Number(00123)//123Number(00123a)//NaN

2. 位运算 >>(右移),<<(左移),>>>(无符号右移),~~

将这几个分为一类是因为它们都对字符串的32位2进制数进行位运算。只包含数字或者以0x开头并包含有效的十六进制格式(整数)这几个操作符有效,别的返回0。简单分析这几个方法:

·~(按位非操作符)

将数值转换为32位二进制数按位取反,~n的值与(-n-1)的值相等,eg:

~25//-26~-26//25

·>>(右移)<<(左移)

将数值32位向右或向左移动(不包括符号位),向右移左边补零,向左移右 边补零,eg:

2<<5// 64-2<<5// -6464>>5// 2-64>>5//-2

·>>>(无符号右移)

将数值32位向右移动,正数时结果与右移相同,负数时,先求其绝对值,绝对值反码加上1得出补码,然后右移,eg:

64>>>5//2-2>>>22//1023简单分析下负数的无符号右移操作-2绝对值的32位表示00000000000000000000000000000010反码11111111111111111111111111111101补码:11111111111111111111111111111110右移22位00000000000000000000001111111111//1023

3.parseInt, parseFloat(这里只分析parseInt

·默认基数为10

·第一个字符为有效数值时(不包括正负号0),解析至无效数值(基数为16时非a-f),eg:

parseInt(12a)//12parseInt(12a,16)//298

·第一个字符为非数值时,返回NaN,有前置0时返回0,eg:

parseInt(a)//NaNparseInt(0a)//0

·0x开头包含有效16进制格式,转换为同等大小十进制数

parseInt与Number有点相似,但是parseInt能部分解析和根据基数转换。parseFloat方法与parseInt方法比较相似,没有基数。

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容