zoukankan      html  css  js  c++  java
  • JavaScript 一元正号运算符

    本文适合JavaScript初学者。

    一元正号介绍

    一元正号运算符(+)位于其操作数前面,计算其操作数的数值,如果操作数不是一个数值,会尝试将其转换成一个数值。 尽管一元负号也能转换非数值类型,但是一元正号是转换其他对象到数值的最快方法,也是最推荐的做法,因为它不会对数值执行任何多余操作。

    转换字符串

    一元正号可以用于转换数值字符串为数字,比如如下代码:

    "123" // 123
    "12.3" // 12.3

    也可以转换二进制、16进制数值、自然底数的字符串:

    "0x11" // 17
    "0b11" // 3
    "1e10" // 10000000000

    看起来 和parseFloat功能类似,但是parseFloat支持字符串后面部分不为数字的情况,一元正号却不行,比如:

    parseFloat("1px") // 1
    "1px" // NaN

    如果是空字符串或者多个空格组成的字符串,一元正号会转换为0,parseFloat 结果为NaN

     + ' ' // 0
    parseFloat(' ') // NaN

    负数形式字符串也可以转换成数值,但是对于十六进制 二进制不适用,对于自然底数适用(parseFloat 都适用):

    +'-123' // 123
    "-0x11" // NaN
    "-0b11" // NaN
    "-1e10" // -10000000000

    转换日期对象

    一元正号转换日期对象为数字,得到时间戳,比如如下代码:

    new Date(); // 1561020101609

    相当于如下代码:

    new Date().getTime(); // 1561020101609

    转换null、undefined、NaN

    一元正号会把null转换为0,undefined 转换为NaN。一元正号施加于NaN,结果还是NaN。代码如下:

    null // 0
    undefined // NaN
    NaN // NaN

    转换布尔值

    一元正号会把true 转换为1,false转换为0:

    true;// 1
    false;// 0

    转换数组

    一元正号会把空数组[],转换为0。如果数组只有一个元素,切第一个元素为数字或者字符串,会对第一个元素进行转换,如果有多个元素,返回NaN,代码如下:

    + []// 0
    + ['123'] // 123
    + [true] // NaN
    + [1,2] // NaN

    总结

    一元正号运算符对于数字字符串和日期的转换比较适用。

    欢迎关注公众号“ITman彪叔”。彪叔,拥有10多年开发经验,现任公司系统架构师、技术总监、技术培训师、职业规划师。熟悉Java、JavaScript。在计算机图形学、WebGL、前端可视化方面有深入研究。对程序员思维能力训练和培训、程序员职业规划和程序员理财投资有浓厚兴趣。

    ITman彪叔公众号ITman彪叔公众号

  • 相关阅读:
    你喜欢使用eclipse+tomcat编程吗?!
    "ERR_GFX_D3D_INIT", GTA5-报错解决办法
    这样写JS的方式对吗?
    webui layout like desktop rich client
    2014年12月23日00:42:54——PS4
    2014年12月20日00:33:14-遮罩+进度条-extjs form.isvalid
    十分钟部署智能合约
    idea clion编译器
    parity 注记词
    go语言学习笔记
  • 原文地址:https://www.cnblogs.com/flyfox1982/p/11107309.html
Copyright © 2011-2022 走看看