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位))

原文地址:https://www.cnblogs.com/goujian/p/11712846.html

时间: 2024-11-06 21:14:55

js常用算术运算符与一元运算符在做运算时不同类型的转换规则的相关文章

08-JAVA算术运算符和逻辑运算符

Java的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符. 算数运算符(9):+  -  *  /  %  ++  -- 关系运算符(6):==  !=  >  >=  <  <= 逻辑运算符(6):&&  ||  !  ^  &  | 位运算符(7):&  |  ~  ^  >>  <<  >>> ----------------------------------------------

javascript运算符——算术运算符

× 目录 [1]一元加 [2]一元减 [3]递增[4]递减[5]加法[6]减法[7]乘法[8]除法[9]求余 前面的话 javascript中的算术操作主要通过算术运算符来实现,本文将介绍算术运算符的内容.算术运算符包括一元算术运算符和二元算术运算符两种 一元算术运算符 一元算术运算符用于一个单独的操作数,并产生一个新值.在javascript中,一元运算符具有很高的优先级,而且都是右结合(right-associative) 一元算术运算符包括一元加法(+).一元减法(-).递增(++)和递减

JS基础-数据类型-运算符和表达式-变量和常量

1.js的基础语法2.js调试 1.F12调出控制台,查看提示错误及其位置. 2.出错时只影响当前代码块,不会影响其他代码块,后续代码块继续执行.3.语法规范 1.js语句:可执行的最小单元 必须以 ; 结束 严格区分大小写 ex:console.log(); //正确 Console.log(); //错误 所有符号必须是英文标点符号 2.js注释 // :单行注释 /**/ :多行注释4.变量和常量 1.变量 1.声明变量 var 变量名; ex: var uname; 2.为变量赋值 变量

C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)

一.数值类型及其调用原理 名称 说明 所占字节 范围 byte 字节型 1 -27~27-1 short 短整型 2 -215~215-1 int 整型 4 -231~231-1 long 长整型 8 -263~263-1 char 字符型 1 0~65535 float 单精度型 4 ±1.5*10-45~±3.4*1038 double 双精度型 8 ±5.0*10-324~±1.7*10308 bool 布尔型 1 只有true和false两个值 static void Main(stri

js常用正则收藏

js的正则在使用时用在开头和结尾加'/' 例如: var letterOrNumber = /^[A-Za-z0-9]+$/;// 仓位只能 包含字母和数字        var seatValidator = letterOrNumber.test(seatID); if (seatValidator) {// 由字母和数字组成                if (seatID.length <1 || seatID.length >2) {// 长度限制                 

17.2015.08.04第十八节课 C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)

一.数值类型及其调用原理 名称 说明 所占字节 范围 byte 字节型 1 -27~27-1 short 短整型 2 -215~215-1 int 整型 4 -231~231-1 long 长整型 8 -263~263-1 char 字符型 1 0~65535 float 单精度型 4 ±1.5*10-45~±3.4*1038 double 双精度型 8 ±5.0*10-324~±1.7*10308 bool 布尔型 1 只有true和false两个值 static void Main(stri

js 常用类

JS常用类 一.Number 1.常用数字 整数:10 小数:3.14 科学计数法:1e5 | 1e-5 正负无穷:Infinity | -Infinity 2.常用进制 二进制:0b1010 八进制:012 十进制:10 十六进制:0xA 3.NaN 非数字类型,通过isNaN()进行判断 4.常用常量 最大值:MAX_VALUE(1.7976931348623157e+308) 最小值:MIN_VALUE(5e-324) 正负无穷:NEGATIVE_INFINITY | POSITIVE_I

JS常用类

JS常用类 一.Number 1.常用数字 整数:10 小数:3.14 科学计数法:1e5 | 1e-5 正负无穷:Infinity | -Infinity 2.常用进制 二进制:0b1010 八进制:012 十进制:10 十六进制:0xA 3.NaN 非数字类型,通过isNaN()进行判断 4.常用常量 最大值:MAX_VALUE(1.7976931348623157e+308) 最小值:MIN_VALUE(5e-324) 正负无穷:NEGATIVE_INFINITY | POSITIVE_I

算术运算符++和--的用法

1.运算符 概念:对常量和变量进行操作的符号.备注:(运算之后是有结果的) 分类: 算术运算符, 赋值运算符 比较(关系或条件)运算符, 逻辑运算符 位运算符 三目(元)运算符   2.++,--运算符的作用 ++:自加:对原有的数据进行+1 --:自减:对原有的数据进行-1 3.使用: 单独使用:放在操作数的前面和后面效果一样. 参与运算使用: 当++在变量后面(i++),会先将变量中的值取出做赋值操作,再自身+1 当++在变量前面(++i),会先自身+1,然后再将+1后的结果赋值 4.举例说