JavaScript中加号运算符"+" 运算过程理解

1) 如果其中一个操作数是对象,则对象会遵循对象到原始值的转换规则转换为原始值。日期对象通过toString()方法执行转换,其它对象则通过valueOf()方法执行转换。由于多数对象都不具备valueOf()方法,因此就会调用toString()方法来进行转换。 
2)在进行对象到原始值的转换后,如果其中一个操作数是字符串的话,则另一个操作数也会转换为字符串,然后进行字符串的连接操作。 
3)否则,两个操作数都将转换为数字(或者NaN),然后进行加法操作。

不同类型操作数相加后的类型如下表:

  undefined1 null2       boolean3 number4 string
undefined number(NaN) number number number string
null number(NaN) number(0) number number string
boolean number(NaN) number(1或0) number number string
number number(NaN) number number number string
string

string

string string string string

1、

“a”+undefined = “aundefined”;

总结:任何基本数据类型(除String外)+undefined都为number类型,值为NaN

2、

true+null=1;(true转为1,null转为0)

false+null=0;(false转为0,null转为0)

10+null=10;

null+“str”=”nullstr”;

3、

true+true=2;(true转为1)

true+false=1;(true转为1,false转为0)

10+true=11;(true转为1)

true+“1”=“true1”;

4、

6+“77”=“677”

JavaScript中parseInt()和parseFloat()非强制转换,Number()强制转换

1、parseInt(string, radix): 函数可解析一个字符串,并返回一个整数。

当忽略参数 radix , JavaScript 默认数字的基数如下:当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

  • 如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
  • 如果 string 以 0 开头,ECMAScript版本小于ECMAScript 5,当字符串以"0"开头时默认使用八进制,ECMAScript 5使用的是十进制
  • 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

例:

parseInt(“123”);123

parseInt(“ 0消费”);0(忽略前面的空格)

parseInt(“0xf”);15

parseInt(“0 xf”);0       (中间的空格不忽略)

2、parseFloat(string): 函数可解析一个字符串,并返回一个浮点数。

提示和注释

开头和结尾的空格是允许的。

提示:如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。

提示:如果只想解析数字的整数部分,请使用 parseInt() 方法。

实例

例子 1

在本例中,我们将使用 parseFloat() 来解析不同的字符串:

<script type="text/javascript">document.write(parseFloat("10"))
document.write(parseFloat("10.00"))
document.write(parseFloat("10.33"))
document.write(parseFloat("34 45 66"))
document.write(parseFloat(" 60 "))
document.write(parseFloat("40 years"))
document.write(parseFloat("He was 40"))</script>

输出:

10
10
10.33
34
60
40
NaN

例子 2

下面的例子都返回 3.14:

<script type="text/javascript">document.write(parseFloat("3.14"))
document.write(parseFloat("314e-2"))
document.write(parseFloat("0.0314E+2"))
document.write(parseFloat("3.14more non-digit characters")) </script>

输出:

3.14

例子 3

下面的例子将返回 NaN:

<script type="text/javascript">document.write(parseFloat("FF2")) </script>

输出:

NaN

3、Number():强制转化,如果转换的是字符串,字符串内必须都是有效的数字字符才可以转换,如过有一个不是有效数字,则无法转换,会返回NaN。

var cur="1adc";

var str="1";

console.log(Number(cur));//NaN

console.log(Number(str));//1

4、Booleanr():强制转化

1、除0(-0)之外的所有数字,转换为boolean型都为true

2、除“”(空字符串)之外的所有字符转为boolean 都为true,空格字符串也为true

3、null和undefined转换为boolean型是false

4、特殊数字NaN转为boolean型也为false

(有就true,无就false,特殊NaN永远都是false)

转载于:https://www.cnblogs.com/zwjx/p/7729509.html

JavaScript基础:(加号,数值转换,布尔转换)相关推荐

  1. JavaScript基础学习之强制类转换(二)

    强制类型转化     -将一个数据类型强制转化为其他数据类型   -类型转化主要指的就是,将其他的数据类型,转化为       String.Number.Boolean 将其他类型转化为String ...

  2. python中复数的实部和虚部都是浮点数_Python基础:数值(布尔型、整型、长整型、浮点型、复数)...

    一.概述 Python中的 数值类型(Numeric Types)共有5种:布尔型(bool).整型(int).长整型(long).浮点型(float)和复数(complex). 数值类型支持的主要操 ...

  3. javaScript基础之隐式转换

    隐式转换,这个是JavaScript,这个时候的一些java中的经验不但不会帮助自己,还有可能会错误的引导自己. 数据类型 JavaScript的变量可以分为三种方式,字面量形式,包装器方式,以及ne ...

  4. 将整数k转换成实数python表达式_『Python基础-5』数字,运算,转换

    『Python基础-5』数字,运算,转换 目录 基本的数字类型 二进制,八进制,十六进制 数字类型间的转换 数字运算 1. 数字类型 Python 数字数据类型用于存储数学上的值,比如整数.浮点数.复 ...

  5. JavaScript对象与JSON格式的转换

    在Web开发中,JavaScript和JSON是两个经常用到的概念.JavaScript是一种脚本语言,可以用来操作网页的内容和行为,而JSON是一种轻量级的数据交换格式,通常用于在客户端和服务器之间 ...

  6. 计算机网络基础之进制之间转换(二进制、八进制、十进制、十六进制)

    计算机网络基础之进制之间转换(二进制.八进制.十进制.十六进制目录) 计算机网络基础之进制之间转换(二进制.八进制.十进制.十六进制) 1.十进制转二进制 2.十进制转八进制 3.十进制转十六进制 4 ...

  7. 常见字符串和数值间得转换

    字符串和数值之间的转换 c标准库: 字符串转数字 atof atoi atol atoll _atoi64 strtof strtod strtold strtol strtoll strtoul c ...

  8. oracle 日期改字符格式_oracle怎么把数值型日期转换成日期字符型

    展开全部 oracle把数值型日期转换bai成日期字符du型的操作方法和详细步骤zhi如下: 1.首先dao,将字符串类型版转换为权数字类型. 此方法使用to_number()直接进行转换. 具体语法 ...

  9. JavaScript原始类型转换和进制转换

    1.JavaScript转换包括:强制转换和基本转换 如: var  str = 'A',num=10,nu=null,t=true,und=undefined,x; //注意:定义的x未被初始化:默 ...

最新文章

  1. 轻轻的我走了,正如我轻轻的来…——ADO.NET核心类的灭度与SQLHelper的诞生——十八相送(下)...
  2. 查杀DeDe数据库后门 网站安全狗DeDe专杀工具
  3. python主流版本-python主流版本
  4. Android软件测试Monkey测试工具
  5. AI发展“风口”在哪里?陪伴才是“蓝海”
  6. python判断给定的手机号是否存在
  7. 使用Uchihash处理恶意软件中的嵌入式哈希
  8. 解决安装驱动时提示的“未签名的驱动程序”警告信息!!
  9. swf转换mp4 linux,转换FLA文件,以.swf文件在Linux上
  10. ocx控件注册和解除注册
  11. intelssd在linux固件升级,Intel固件升级教程修复320系列SSD 8M丢数据问题
  12. 【Demllie航天】航天器控制系统
  13. 如何用邮编查询API快速开发
  14. 软件工程:敏捷过程与极限编程
  15. python安装失败未指定_win7 64 位安装 python,提示: 0x80240017-未指定的错误
  16. 【在PowerPoint中插入视频的三种方法】
  17. Arduino Mixly入门到精通教程
  18. 经典激光雷达SLAM系统:LOAM-Livox
  19. web程序设计(3)——使用CSS设计新闻网页
  20. 自学web前端真的很难找到工作

热门文章

  1. WordPress按钮秒支付插件发布,支持微信支付,支付宝,银联,京东,苏宁,易宝支付...
  2. 获取数据库中的所有表
  3. 如果我要....(生活版)
  4. st edmunds和emmanuel college
  5. Cambridge Website in a page
  6. index.html example demonstration
  7. how can we make them work together efficiently?
  8. 计算机系学生的简单立体宿舍装潢大赏
  9. 复盘王者荣耀手游开发全过程,Unity引擎使用帧同步放弃状态同步
  10. 有符号与无符号数强转的可逆性