自动数据类型转换与强制数据类型转换

自动数据类型转换

  • 任何类型的数据和字符串类型数据做相加操作的时候。其他数据类型会自动转换称为字符串类型。字符串拼接。此时的相加操作不再是数学意义上的加法,而是表示拼接的意思。
    如果其中一个操作数是字符串的时候,+号叫做字符串的拼接。
	var t = "您" + "好"; //您好
	var t = "1" + 1; //11
	var t = "h" + true; //htrue
	var t = "h" + undefined; //hundefined

查看JS语法错误:
火狐 fireBug
谷歌 chrome控制台

  • 任何数据除了和字符串做相加运算外,先要将字符串转成数字再进行运算
    (1)与NaN做算数运算的结果始终都是NaN,包括NaN本身和NaN做运算结果也为NaN
    (2)字符串如果是纯数字字符串转成数字,否则会转换成NaN
	var t = 1 - "2"; //字符串“2”转成了数字2
	var t = 1 - "2a"; //NaN
	var t = NaN - NaN; //NaN
  • 任何其他数据类型除了和字符串做相加操作外,与数字类型做算数运算的时候,其他数据类型都会自动的转换成数字
var t = 1 * "1"; //1
var t = 1 / "1"; //1	number
var t = 1 + true; //2
var t = 1 + false; //1
var t = 1 + null; //1
var t = 1 + undefined; //NaN

强制数据类型转换

  • 强制数据类型转换转换成布尔值

通过方法Boolean()进行强制数据类型转换,作用是将别的数据类型转换成布尔值
(1)数字0转成布尔值为false,所有非0的数字转成布尔值都为true
(2)空字符串转成布尔值为false,所有非空字符串转成布尔值为true
(3)null和undefined转成布尔值都是false

var t = Boolean(1); //true
var t = Boolean(0); //false
var t = Boolean(-1); //true

var t = Boolean(""); //false
var t = Boolean("hello"); //true

var t = Boolean(null); //false
var t = Boolean(undefined); //false
  • 强制数据类型转换转换成数字
    1.Number() 将别的数据类型转成数字
    (1)布尔值 true => 1 false => 0
    (2)字符串 纯数字的字符串 => 对应的数字,否则NaN
    (3)特殊数据类型 null => 0 undefined => NaN
var t = Number(true); //1
var t = Number(false); //0

var t = Number("20"); //20
var t = Number("20a"); //NaN

var t = Number(null); //0
var t = Number(undefined); //NaN
var t = Number(true); //1

2.parseInt() 兼容Number的功能,取整

var t = parseInt("3.14"); //3	number

3.parseFloat() 取浮点数 带小数的数字 可以将别的数据类型转换成数字

var t = parseFloat("3.14"); //3.14	number
  • 被除数为0的情况
var t = 1 / 0; //Infinity(无穷大)
var t = -1 / 0; //-Infinity(无穷小)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值