JavaScript基础:(加号,数值转换,布尔转换)
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基础:(加号,数值转换,布尔转换)相关推荐
- JavaScript基础学习之强制类转换(二)
强制类型转化 -将一个数据类型强制转化为其他数据类型 -类型转化主要指的就是,将其他的数据类型,转化为 String.Number.Boolean 将其他类型转化为String ...
- python中复数的实部和虚部都是浮点数_Python基础:数值(布尔型、整型、长整型、浮点型、复数)...
一.概述 Python中的 数值类型(Numeric Types)共有5种:布尔型(bool).整型(int).长整型(long).浮点型(float)和复数(complex). 数值类型支持的主要操 ...
- javaScript基础之隐式转换
隐式转换,这个是JavaScript,这个时候的一些java中的经验不但不会帮助自己,还有可能会错误的引导自己. 数据类型 JavaScript的变量可以分为三种方式,字面量形式,包装器方式,以及ne ...
- 将整数k转换成实数python表达式_『Python基础-5』数字,运算,转换
『Python基础-5』数字,运算,转换 目录 基本的数字类型 二进制,八进制,十六进制 数字类型间的转换 数字运算 1. 数字类型 Python 数字数据类型用于存储数学上的值,比如整数.浮点数.复 ...
- JavaScript对象与JSON格式的转换
在Web开发中,JavaScript和JSON是两个经常用到的概念.JavaScript是一种脚本语言,可以用来操作网页的内容和行为,而JSON是一种轻量级的数据交换格式,通常用于在客户端和服务器之间 ...
- 计算机网络基础之进制之间转换(二进制、八进制、十进制、十六进制)
计算机网络基础之进制之间转换(二进制.八进制.十进制.十六进制目录) 计算机网络基础之进制之间转换(二进制.八进制.十进制.十六进制) 1.十进制转二进制 2.十进制转八进制 3.十进制转十六进制 4 ...
- 常见字符串和数值间得转换
字符串和数值之间的转换 c标准库: 字符串转数字 atof atoi atol atoll _atoi64 strtof strtod strtold strtol strtoll strtoul c ...
- oracle 日期改字符格式_oracle怎么把数值型日期转换成日期字符型
展开全部 oracle把数值型日期转换bai成日期字符du型的操作方法和详细步骤zhi如下: 1.首先dao,将字符串类型版转换为权数字类型. 此方法使用to_number()直接进行转换. 具体语法 ...
- JavaScript原始类型转换和进制转换
1.JavaScript转换包括:强制转换和基本转换 如: var str = 'A',num=10,nu=null,t=true,und=undefined,x; //注意:定义的x未被初始化:默 ...
最新文章
- 轻轻的我走了,正如我轻轻的来…——ADO.NET核心类的灭度与SQLHelper的诞生——十八相送(下)...
- 查杀DeDe数据库后门 网站安全狗DeDe专杀工具
- python主流版本-python主流版本
- Android软件测试Monkey测试工具
- AI发展“风口”在哪里?陪伴才是“蓝海”
- python判断给定的手机号是否存在
- 使用Uchihash处理恶意软件中的嵌入式哈希
- 解决安装驱动时提示的“未签名的驱动程序”警告信息!!
- swf转换mp4 linux,转换FLA文件,以.swf文件在Linux上
- ocx控件注册和解除注册
- intelssd在linux固件升级,Intel固件升级教程修复320系列SSD 8M丢数据问题
- 【Demllie航天】航天器控制系统
- 如何用邮编查询API快速开发
- 软件工程:敏捷过程与极限编程
- python安装失败未指定_win7 64 位安装 python,提示: 0x80240017-未指定的错误
- 【在PowerPoint中插入视频的三种方法】
- Arduino Mixly入门到精通教程
- 经典激光雷达SLAM系统:LOAM-Livox
- web程序设计(3)——使用CSS设计新闻网页
- 自学web前端真的很难找到工作
热门文章
- WordPress按钮秒支付插件发布,支持微信支付,支付宝,银联,京东,苏宁,易宝支付...
- 获取数据库中的所有表
- 如果我要....(生活版)
- st edmunds和emmanuel college
- Cambridge Website in a page
- index.html example demonstration
- how can we make them work together efficiently?
- 计算机系学生的简单立体宿舍装潢大赏
- 复盘王者荣耀手游开发全过程,Unity引擎使用帧同步放弃状态同步
- 有符号与无符号数强转的可逆性