在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. 哈希----字符串----time33

    //此处只是获得了字符串的hash值,但是该如何散列到hash表中呢?哪个算法会好些?! 1 //在处理以字符串为键值的哈希时,times33哈希算法有着极快的计算效率和很好的哈希分布 //小写英文单 ...

  2. C++与Java混合编程

    现在的程序员,不再像以前一样,掌握一种编程语言就可以混得有模有样了,现实的情况是,真实的项目中,通常是涉及多种编程语言,举几个简单的例子,一个软件为了快速开发,可能是使用Delphi或VB作为界面开发 ...

  3. JQuery上传插件Uploadify使用详解 asp.net版

    先来一个实例 Uploadify插件是JQuery的一个文件支持多文件上传的上传插件,ajax异步上传,实现的效果非常不错,带进度显示.不过官方提供的实例时php版本的,本文将详细介绍Uploadif ...

  4. dedecms的arclist循环中判断第一个li添加css,否则不加

    dedecms的arclist循环中,判断如果是第一个li,则添加固定的css,否则不加   写法如下: {dede:arclist row=4 flag='p'} <li [field:glo ...

  5. linux环境,crontab报错Authentication token is no longer valid; new one required You (aimonitor) are not allowed to access to (crontab) because of pam configuration.

    问题描述: 今天同事反应,一个系统上的某些数据没有生成,看了下,怀疑定时任务没有执行,就看下了crontab,发现报了下面的错误: [aimonitor@4A-LF-w08 ~]$ crontab - ...

  6. mysql中什么是逻辑备份

    需求描述: mysql中,或者说关系型数据库中逻辑备份到底指的是什么呢,主要还是对于 概念的理解,在此记录下. 概念解释: 逻辑备份:主要指的是保存数据库的逻辑结构(比如:create dattaba ...

  7. C/C++ 头文件以及库的搜索路径

    关键点: 1. #include <...> 不会搜索当前目录 2. 使用 -I 参数指定的头文件路径仅次于 搜索当前路径. 3. gcc -E -v 可以输出头文件路径搜索过程 C++编 ...

  8. POJ 1273 Drainage Ditches (网络最大流)

    http://poj.org/problem? id=1273 Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Sub ...

  9. js md5类(支持中文)

    国外网站扒的一个js类,这个东西挺难找的,之前找的都是一有中文的加密不正确,这个类解决这个问题了!!! 注:使用的时候,使用 hex_md5 函数 代码如下: /** * Namespace for ...

  10. 为什么说在js当中所有类的父类是Object类

    代码如下所示: function Parent(add,net,no,teacher) { this.add = add; this.net = net; this.no = no; this.tea ...