js常用算术运算符与一元运算符在做运算时不同类型的转换规则
/**
* 算术运算符:+, -, *, /, %
* 当对非number类型的值进行运算(-, *, /, %)时,会将这些值先转换成number再运算,加法'+'运算除外,
* 当对非number类型(string, object)的值做加法(+)运算时会将这些值先转换成string再做拼接而不是相加
* number类型的值与NaN做运算都是NaN
*/
// number
console.log(`1 + 1 = ${1 + 1}`); // 1 + 1 = 2
console.log(`1 + NaN = ${1 + NaN}`); // 1 + NaN = NaN
// string
console.log(`1 + 'foo' = ${1 + 'foo'}`); // 1 + 'foo' = 1foo
// boolean
console.log(`1 + true = ${1 + true}`); // 1 + true = 2
console.log(`1 + false = ${1 + false}`); // 1 + false = 1
// null
console.log(`1 + null = ${1 + null}`); // 1 + null = 1
// undefined
console.log(`1 + undefined = ${1 + undefined}`); // 1 + undefined = NaN
// object
console.log(`1 + (new Object()) = ${1 + (new Object())}, typeof (new Object()) = ${typeof (new Object())}`); // 1 + (new Object()) = 1[object Object], typeof (new Object()) = object /**
* 一元运算符:-, +
* 对于number类型数字,+不会对数字产生影响,-将数字转换成负数
* 对于非number类型的值,会先将值转换成number再做运算
*/
// number
console.log(`+1 = ${+1}`); // +1 = 1
console.log(`-1 = ${-1}`); // -1 = -1
console.log(`+NaN = ${+NaN}`); // +NaN = NaN
// string
console.log(`+'a' = ${+'a'}`); // +'a' = NaN
console.log(`+'' = ${+''}`); // +'' = 0
console.log(`+'1' = ${+'1'}`); // +'1' = 1
// boolean
console.log(`-true = ${-true}`); // -true = -1
console.log(`-false = ${-false}`); // -false = 0
// null
console.log(`-null = ${-null}`); // -null = 0
// undefined
console.log(`-undefined = ${-undefined}`); // -undefined = NaN
// object
console.log(`+(new Object()) = ${+(new Object())}`); // +(new Object()) = NaN // 注意:以上显示结果仅是在谷歌浏览器下(正式版本71.0.3578.98 (64位))
js常用算术运算符与一元运算符在做运算时不同类型的转换规则的更多相关文章
- MySQL常用运算符:算术运算符、比较运算符、逻辑运算符
(一) 算术运算符 注意: 在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL. div运算符主要是求两个数相除的商 (二) 比较运算符:比较运算符的运算结果为1(条件为真),0 ...
- JavaScript算术运算符
㈠运算符(操作符) ⑴通过运算符可以对一个或多个值进行运算,并获取运算结果 ⑵比如:typeof就是运算符,可以来获得一个值得类型 它会将该值的类型以字符串的形式返回 ...
- 21.Python算术运算符及用法详解
算术运算符是处理四则运算的符号,在数字的处理中应用得最多.Python 支持所有的基本算术运算符,如表 1 所示. 表 1 Python常用算术运算符 运算符 说明 实例 结果 + 加 12.45 + ...
- JavaScript算数运算符和一元运算符
算数运算符 加法运算符(Addition): x + y 减法运算符(Subtraction): x - y 乘法运算符(Multiplication): x * y 除法运算符(Division): ...
- java入门学习(九) 算术运算符
请大家关注我的博客www.taomaipin.com 运算符在java基础中也占有着举足轻重的位置,我们当然要学会它.java 其实和其他计算机语言一样,基本的算术运算符基本一样,让我们看看 有哪些算 ...
- 让你彻底搞懂JS中复杂运算符==
让你彻底搞懂JS中复杂运算符== 大家知道,==是JavaScript中比较复杂的一个运算符.它的运算规则奇怪,容易让人犯错,从而成为JavaScript中“最糟糕的特性”之一. 在仔细阅读了ECMA ...
- js之运算符(算术运算符)
Javascript中的运算符大多是由标点符号少数由关键字表示.可以根据其操作数的个数进行分类.大多数运算符是一个二元运算符,将两个表达式合成一个比较复杂的表达式.还有需要注意的一点是运算符的优先级, ...
- MATLAB算术运算符和常用函数
1 算术运算符 Matlab中的算术运算符按优先级由高到低为: (1) ^ 幂 (2) * 乘 / 右除(正常除) ...
- C++ 炼气期之算术运算符
1. 前言 编写程序时,数据确定后,就需要为数据提供相应的处理逻辑(方案或算法).所谓逻辑有 2 种存在形态: 抽象形态:存在于意识形态,强调思考过程,与具体的编程语言无关. 具体形态:通过代码来实现 ...
随机推荐
- shell命令结果重定向
- 390-基于Zynq UltraScale+ MPSoC的单板嵌入式计算机
基于Zynq UltraScale+ MPSoC的单板嵌入式计算机 概述:Aldec TySOM-3-ZU7EV,将Xilinx Zynq UltraScale+ ZU7EV MPSoC以及DDR4 ...
- css day2
外观属性 color:文本颜色 用于定义文本的颜色 1.预定义的颜色值,如red.green.blue等 2.十六进制,如#FF0000.#FF6600.#29D794等.十六进制是最常用的定义颜色的 ...
- 初学Java 求最大公约数
import java.util.Scanner; public class GreatesCommonDivisor { public static void main(String[] args) ...
- [Luogu2365]任务安排(斜率优化)
[Luogu2365]任务安排 题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成 ...
- Sass--混合宏--声明宏
如果你的整个网站中有几处小样式类似,比如颜色,字体等,在 Sass 可以使用变量来统一处理,那么这种选择还是不错的.但当你的样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无法达到我们目了.这 ...
- RPC_简洁版
1.定义服务接口 public interface RpcService { int printHello(int msg); } 2.定义服务接口实现类 public class RpcInterf ...
- Go 迭代切片
迭代切片有两种方式: 1. 使用 for range 迭代切片 // 其长度和容量都是 4 个元素 slice := [], , , } // 迭代每一个元素,并显示其值 for index, v ...
- Python lambda 多变量
>> x = list(map(lambda x, y: (x>3, y>0), (1,2,3,4,5), (0,1,2,3,4)))>>> x[(False ...
- Redis事件通知示例
1. redis如同zk一样,提供了事件监听(或者说是回调机制), 下面是redis的配置说明: ############################# EVENT NOTIFICATION ## ...