在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')

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

  1. 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的模(既 ...

  2. 项目期复习:JS操作符,弹窗与调试,凝视,数据类型转换

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/huangyibin628/article/details/26364901 1.JS操作符 ① 除法 ...

  3. js操作符类型转换

    乘法 我们来看下前面的题目: console.dir(5*"5"); console.dir(5*"a");//NaN console.dir(5*NaN);/ ...

  4. js字符串转换为数字的三种方法。(转换函数)(强制类型转换)(利用js变量弱类型转换)

    js字符串转换为数字的三种方法.(转换函数)(强制类型转换)(利用js变量弱类型转换) 一.总结 js字符串转换为数字的三种方法(parseInt("1234blue"))(Num ...

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

    效果展示:http://hovertree.com/texiao/js/35/ 数字采用漂亮的糖果皮肤设计 效果图: 代码如下: <!DOCTYPE html> <html> ...

  6. js 只能输入数字和小数点

    <html><head><meta http-equiv="content-Type" content="text/html;charset ...

  7. js中的数字格式变成货币类型的格式

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  8. MUI 里js动态添加数字输入框后,增加、减少按钮无效

    numbox 的自动初化是在 mui.ready 时完成的mui 页面默认会自动初始化页面中的所有数字输入框,动态构造的 DOM 需要进行手动初始化.比如:您动态创建了一个 ID 为 abc 的数字输 ...

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

    转:http://blog.csdn.net/dxnn520/article/details/8267173 var定义的变量应该是字符串,有时没有经过类型转换而进行比较的话,小于十的话还可以,如果大 ...

随机推荐

  1. LoadRunner 调用dll方法

    本文主要介绍简单DLL的编写方法及在LoadRunner中局部调用与全局调用DLL方法. 1.动态链接库的编写 在Visual C++6.0开发环境下,打开FileNewProject选项,可以选择W ...

  2. 如何用MathType编辑化学等式

    MathType在数学中应用非常广泛,被大量用于编辑数学公式,MathType不仅可以用来编辑数学公式,还可以编辑化学反应式,那么MathType编辑化学等式怎么操作的呢? 具体操作如下: 1.打开M ...

  3. [转] CSocket 和CAsyncSocket类介绍

    微软的MFC把复杂的WinSock API函数封装到类里,这使得编写网络应用程序更容易. CAsyncSocket类逐个封装了WinSock API,为高级网络程序员提供了更加有力而灵活的方法.这个类 ...

  4. php 中的 short_open_tag 的作用

    在php的配置文件(php.ini)中有一个short_open_tag的值,开启以后可以使用PHP的段标签:(<? ?>). 同时,只有开启这个才可以使用 <?= 以代替 < ...

  5. 帝国cms目录结构

    / 系统根目录├d/         附件和数据存放目录 (data) │├file/    附件存放目录 │├js/       JS调用生成目录 │└txt/        内容存文本存放目录 ├ ...

  6. [java] Unsupported major.minor version 51.0 错误解决方案

    jdk1.6工程中使用外部jar包中类出现:Unsupported major.minor version 51.0原因分析:出现上述错误是因为:外部jar包使用jdk1.7(jdk7)编译,而使用此 ...

  7. [ML] I'm back for Machine Learning

    Hi, Long time no see. Briefly, I plan to step into this new area, data analysis. In the past few yea ...

  8. 改善C#程序的建议4:C#中标准Dispose模式的实现

    http://www.cnblogs.com/luminji/archive/2011/03/29/1997812.html 需要明确一下C#程序(或者说.NET)中的资源.简单的说来,C#中的每一个 ...

  9. django model 数据类型

    转自:http://www.cnblogs.com/lhj588/archive/2012/05/24/2516040.html Django 通过 models 实现数据库的创建.修改.删除等操作, ...

  10. 泛型的几种类型以及初识winform

    今天学习的可以分为两类吧,但是学习的都是比较抽象的,不太容易掌握吧.首先我们大部分时间学习了泛型,泛型的委托,泛型接口以及枚举器,迭代器,扩展方法:最后简单的认识了webform,实现了一个简单的功能 ...