`
flyfox1982
  • 浏览: 80865 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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 // 0undefined // NaNNaN // NaN

转换布尔值

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

true;// 1false;// 0

转换数组

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

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

总结

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

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

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

0
0
分享到:
评论

相关推荐

    JavaScript一元正号运算符示例代码

    JavaScript中的“一元正号运算符”(+)是一个简单的但功能强大的运算符,它可以用于提升操作数的数值,特别是当处理数据类型转换时。在本文中,我们将深入探讨一元正号运算符的工作原理,以及它如何在不同场景下...

    c++运算符优先级,word版本表格

    21. `+` 一元正号运算符 22. `*` 解引用运算符 23. `&` 取地址运算符 24. `left->*` 指向成员选择的指针运算符 25. `left.*` 指向成员选择的指针运算符 26. `*` 乘法运算符 27. `/` 除法运算符 28. `%` 取模运算符 ...

    c语言表达式.ppt

    * 一元算术运算符需要一个操作数,包括正号和负号两种运算符。 * 算术运算符的优先级从高到低依次是:一元算术运算符、乘法、除法、取余、加法和减法。 * 运算符的结合性决定了表达式的计算顺序。 * C语言中的实现...

    C语言之运算符和表达式

    * 正号运算符:+aa的值 * 负号运算符:-aa的算术负值 * 自增运算符:++i在使用i之前,先使i的值加1 * 自减运算符:--i在使用i之前,先使i的值减1 * 求余运算符:%a%ba除以b的余数 二元运算符 二元运算符是指需要两...

    C++运算符优先级表

    单目运算符的优先级次之,包括逻辑非、按位取反、预增量、预减量、负号、正号、dereference和地址运算符。例如: * 逻辑非:if( !done ) ... * 按位取反:flags = ~flags; * 预增量:for( i = 0; i ; ++i ) ... * ...

    单片机\C语言运算符表

    2. **一元运算符**:包括逻辑非`!`、按位取反`~`、前缀增量`++`、前缀减量`--`、正号`+`、负号`-`、类型转换`(类型)`、取地址`&`和求大小`sizeof`。 - **逻辑非`!`**:对布尔值取反。 - **按位取反`~`**:对二进制...

    C语言运算符和关键字

    1. **一元运算符**:仅作用于一个操作数。如 `!` (逻辑非)、`~` (按位非)、`++` (前增)、`--` (前减)、`+` (正号)、`-` (负号)、`*` (间接)、`&` (取地址)、`(类型)` (类型转换) 和 `sizeof` (求对象或类型大小)。 2...

    JavaScript课件-03.pptx

    一元运算符包括`++`和`--`,用于自增和自减;二元运算符有`+`、`-`、`*`、`/`,用于加、减、乘、除;三元运算符`? :`用于条件判断。算术运算符还包括模运算符 `%`,用于求余数。负号运算符 `-`和正号运算符 `+`则...

    运算符优先级等级口诀.docx

    - `+`:正号运算符,一般用作无操作。 - `-`:负号运算符,将数值变为相反数。 - `(类型)`:类型转换运算符,将一种类型转换为另一种类型。 - `*`:指针运算符,用于解引用指针,获取指针所指向的值。 - `&`:...

    C and C++运算符优先级等级口诀.docx

    2. **一元运算符** (第2级,右结合) - `!`逻辑非运算符,将布尔值反转。 - `~`按位取反运算符,对整数进行位操作,每个位取反。 - `++`前缀增量运算符,增加变量的值。 - `--`前缀减量运算符,减少变量的值。 -...

    Java的运算符[参考].pdf

    一元运算符如正号 (+)、负号 (-)、自增 (++) 和自减 (--),它们作用于单个操作数。二元运算符如加 (+)、减 (-)、乘 (*)、除 (/) 和取余 (%),它们作用于两个操作数。自增和自减运算符有前置和后置两种形式,例如 `i+...

    C++ 运算符优先级列表

    - **-/+** (负/正号): 用于表示数值的符号。 - 示例: `int i = -1;` 定义负数。 - 示例: `int i = +1;` 定义正数。 - **\*** (取址运算符): 返回变量的地址。 - 示例: `data = *ptr;` 获取指针 `ptr` 指向的...

    运算符优先级等级口诀.pdf

    - `+`:正号运算符,通常无实际作用,但可以用于明确表示正数。 - `-`:负号运算符,用于取变量的相反数。 - `(类型)`:类型转换运算符,强制将一种类型转换为另一种类型。 - `*`:指针运算符,用于访问指针所...

    C语言中的逻辑运算符

    )和按位取反运算符(~),以及前缀增量(++)和减量(--)运算符,正号(+)、负号(-),类型转换运算符(类型),指针运算符(*),地址运算符(&),长度运算符(sizeof)等,它们属于单目运算符。 3. 乘法(*)、除法(/)、取余(%)...

    java运算符大全

    4. **正号** (+): 作为单目运算符时,用于正数的表示,没有实际作用;作为双目运算符时,用于加法运算。 5. **负号** (-): 作为单目运算符时,用于取负;作为双目运算符时,用于减法运算。 6. **自增运算符** (++)...

    《C语言运算符》pdf版

    间接寻址 `*`、一元正号 `+`、一元负号 `-`、按位求反 `~` 和逻辑非 `!` - **间接寻址**:用于获取指针指向的内存位置的值。 - **一元正号**:表示数值本身。 - **一元负号**:表示数值的相反数。 - **按位求反**...

    delphi运算符列表

    7. **正号 (一元 +)**:表示数值的正号。 - 示例:`+7` 8. **负号 (一元 -)**:数值的取反运算。 - 示例:`-X` #### 三、布尔运算符 布尔运算符用于执行布尔值的逻辑运算,主要应用于条件判断。 1. **逻辑非 ...

    运算符优先级与结合性

    2. **单目运算符** (优先级2): `-`、`+`(正号)、`++`、`--`、`*`(解引用)、`&`(取地址)、`!`(逻辑非)、`~`(按位取反)、`sizeof`。这些运算符通常作用于一个单一的变量或表达式,例如,`++i`会递增变量i的...

    【Python学习笔记】第四章 运算符.pdf

    一元运算符有两个,分别是加号(+)表示正号,和减号(-)表示负号。二元运算符包括加法(+), 减法(-), 乘法(*), 除法(/), 取余(%), 幂运算(**) 和地板除法(//)。特别地,地板除法返回除法运算中,小于等于实际商的最大...

Global site tag (gtag.js) - Google Analytics