JS操作符转化数字

在Node.js源代码里,随处可见使用各种符号处理字符串为数字的。可能由于不同人编写,使用的风格也各有不同。 基本上有下面几种。

将字符串转化为数字

+

将一个数字的字符串转化为数字很简单的一种做法就是在前面加+号。

  var si = +‘12‘;        //  12
  var sn = +‘-12‘;       // -12
  var sf = +‘12.7‘;      // 12.7
  var ss = +‘12s‘;       // NaN

*

使用乘法符号*转化:

  var si = ‘12‘ * 1;     // 12
  var sn = ‘-12‘ * 1;    // -12
  var sf = ‘12.7‘ * 1;   // 12.7
  var ss = ‘12s‘ * 1;    // NaN

将字符串转化为整数

~~

运算符~原意是按位取反,使用~~可以将一个可以转化为数字的字符串转化成整数:

  var si = ~~‘12‘;        // 12
  var sn = ~~‘-12‘        // -12
  var sf = ~~‘12.7‘;      // 12
  var snf = ~~‘-12.7‘;   // -12
  var ss = ~~‘12s‘;       // 0

>>

运算符>>原意是带符号右移,使用>> 0可以将一个可转化的字符串转化成整数:

  var si = ‘12‘ >> 0;       // 12
  var sn = ‘-12‘ >> 0;      // -12
  var sf = ‘12.7‘ >> 0;     // 12
  var snf = ‘-12.7‘ >> 0;  // -12
  var ss = ‘12s‘ >> 0;      // 0

>>>

运算符>>>原意是不带符号右移,可以使用>>> 0将一个字符串转化为整数:

  var si = ‘12‘ >>> 0;     // 12
  var sn = ‘-12‘ >>> 0;    // 4294967284
  var sf = ‘12.7‘ >>> 0;   // 12
  var ss = ‘12s‘ >>> 0;    // 0

注意

使用上面符号时,其转换与JavaScript自带的库有时候表现是不一样的。如:

  var sfp = ‘12.4‘;
  var sfn = ‘-12.7‘;
  var msfp = Math.floor(sfp);       //  12
  var nsfp = ~~sfp;                 //  12
  var msfn = Math.floor(sfn);       // -13
  var nsfn = ~~sfn;                 // -12

使用符号代替JavaScript库有以下几种情况:

  • 使用符号可能会比库函数性能好。但由于JS解释器不同,有可能出现相反的情况。
  • 减少传输字符,使用符号会节省一定的空间。

但在某些时候,必须使用库函数。如: parseInt(‘12s‘)

时间: 2024-11-10 15:34:26

JS操作符转化数字的相关文章

js操作符

JS操作符 x + y(数字) 将x和y相加; x + y(字符串) 将x和y拼接在一起; x - y 从x中减去y; x * y 将x和y相乘; x / y 将x除以y; x % y x和y的模(既x除以y的余数); x++ .++x 给x加1(相当于x = x + 1); x-- . --x 给x减1(相当于x = x - 1); -x x的反数; x++和++x都是给x加1,但是它们并不相同.前者在完成赋值之后在将x 加1 ,而后者加1之后在赋值. 例如.如果x是5 ,y = x++ 会将

项目期复习:JS操作符,弹窗与调试,注释,数据类型转换

1.JS操作符 ① 除法运算后,是有小数存在的,跟C语言不同之处 var num = 67/4;         ----------> 输出:16.75 console.log(num); ② 通常情况下,操作符与数值/变量之间需要有空格隔开 1) 赋值操作符  = 2) 算数操作符  + .- .*. / .% , 除法是可以有小数存在的 ③  取余 最后结果正负与被除数有关 与除无关  如: (-7)%3 = -1         7%3=1    (-7)%(-3)=-1    7%(-

js操作符类型转换大全(前端面试题之操作符)

操作符运算符,在前端的面试题目中经常出现,很多朋友在对其运算的时候经常出错.说明对操作符运算还没有完全理解,我前面的一篇文章,javascript双等号引起的类型转换,主要讲解双等号引起的类型转换.本篇文章可以说是对这篇文章的补充吧! 首先,我们先来做一些题目吧!为了统一,我不混着来写这些题目,面试题目中,经常将这些题目混起来,这样对你的迷惑度会更大,为了更方便演示,我在这里分模块写了一些题目,大家可以看下! //操作符字符串的隐性转换 //乘法 console.dir("-------以下乘法

原生js可爱糖果数字时间特效

效果展示:http://hovertree.com/texiao/js/35/ 数字采用漂亮的糖果皮肤设计 效果图: 代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content=&qu

js如何实现数字保留小数点后两位小数

js如何实现数字保留小数点后两位小数:小数点后保留两位小数是比较常见的形式,由于比较简单,下面直接给出例子.代码如下: var num=3.1415926; console.log(num.toFixed(2)); toFixed()函数可以参阅javascript的Number对象的toFixed()方法一章节. 原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9567 更多内容可以参阅:http://www.softwhy.

jquery过滤特殊字符及js字符串转为数字

//替换特殊字符 $(this).val($(this).val().replace(/[~'!<>@#$%^&*()-+_=:]/g, "")); 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 一些示

js实现的数字四舍五入效果代码实例

js实现的数字四舍五入效果代码实例:下面直接给出能够截取指定位数字符串,且具有四舍五入效果的代码: var num=3.1415926; console.log(num.toFixed(3)); toFixed()函数可以参阅javascript的Number对象的toFixed()方法一章节. 原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=11973 更多内容可以参阅:http://www.softwhy.com/javas

js中Number数字相乘后值不对

问题: 37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎么可能多出这么小数点出来. 我Google了一下,发现原来这是JavaScript浮点运算的一个bug. 比如:7*0.8 JavaScript算出来就是:5.6000000000000005解决方法:网上找到了一些解决办法,就是重新写了一些浮点运算的函数. 下面就把这些

js,jquery的数字型字符串变量比较大小

转:http://blog.csdn.net/dxnn520/article/details/8267173 var定义的变量应该是字符串,有时没有经过类型转换而进行比较的话,小于十的话还可以,如果大于十就会出错 例: 1 var hour_select_begin=$('#hour_select_begin option:selected').text(); 2 3 var hour_select_end=$('#hour_select_end option:selected').text()