逆战班——数据类型的自动转化和强制转化

在JavaScript程序中,变量中存储的数据类型没有限制,也就是在变量中可以存储任何符合JavaScript语法规范的数据类型
但在JavaScript程序的执行过程中,往往需要变量中存储的数值是某种特定的数据类型,别的数据类型不行
此时就需要进行数据类型的转化
所谓的数据类型转化,就是将当前数据类型转化为其他数据类型
JavaScript中数据类型的转化,分为自动转化和强制转化
自动转化是计算机程序自行完成的转化
强制转化是程序员强行完成的转化
在这里插入图片描述

一、布尔类型的自动转化和强制转化

自动转化

其他数据类型,自动转化为布尔类型
在执行if判断时,其他数据类型会自动转化为布尔类型
其他类型转化为布尔类型的原则
转化为false:
0 、’’、 undefined、 null、 NaN这五种情况转化为false
特别提醒 0.0 、 0.00000 都算是0
其他的所有都会转化为 true
这里不表示对错,如果0按照布尔类型类执行转化,转化的结果是false

强制转化

其他数据类型,强制转化为布尔类型
就是使用JavaScript中定义好的方法/函数
Boolean( 数据/变量 )
转化原则与自动转化原则相同
false : 0 ‘’ undefined null NaN
true : 其他数据,都转化为true
Boolean() 这个方法 不会改变 变量中存储的原始数值
使用Boolean()方法转化变量中存储的数值,但是不会改变变量中存储的数值
只是将变量中的数值,解析获取,再转化输出,不会改变变量中存储的内容

二、字符串类型的自动转化和强制转化

自动转化

其他类型自动转化为字符串
在执行字符串拼接时,会将其他数据类型转化为字符串类型
执行字符串拼接,拼接符号+号两侧应该都是字符串类型
如果是其他类型JavaScript程序,会自动转化为字符串类型,再执行拼接
转化原则
布尔值 true —> 字符串 ‘true’
布尔值 false —> 字符串 ‘fasle’
undefined —> 字符串 ‘undefined’
unll —> 字符串 ‘null’
数值 —> 将数值解析转化为 对应的 纯数字的字符串
这里有三个特殊的转化
数组 —> 将 [] 中的内容,转化为字符串的形式,进行拼接
对象 —> 任何对象和内容会转化为[objectObject]固定的内容形式
函数 —> 将所有的程序代码,转化为字符串
基本数据类型 / 简单数据类型
将 数据数值 直接转化为字符串 , 然后执行拼接操作
引用数据类型 / 复杂数据类型
数组 : 不要 [] 将数组的数据内容,转化为字符串,执行拼接操作
对象 : 任何的对象,都转化为字符串[object Object],执行拼接操作
函数 : 将所有函数的代码,都转化为字符串,执行拼接操作

强制转化

其他类型强制转化为字符串类型
方法1,变量.toString(进制类型)
将数值强制转化为字符串,并且可以设定转化的进制
.toString() 之前,不能直接写数值,必须是写成变量的形式
进制常用的数值是 2 8 16
可以设定的范围是 2 - 36 进制 10个数值+26个英文字母
最少是2进制,最多是36进制
方法2,String( 变量 / 数据 )
将变量或者数据,转化为字符串
原则按照自动转化的原则来执行
不会改变变量中存储的原始数值
字符串拼接时,会将其他数据类型自动转化为字符串

三、数值类型的自动转化和强制转化

自动转化

其他类型自动转化为数值
在执行数学运算时 会触发数据类型的自动转化
转化原则
布尔类型 : true —> 1
false —> 0
undefined : 转化为 NaN
null : 转化为 0
字符串 :
整个字符串是纯数字字符串或者符合科学计数法—> 化为对应的数值
如果字符串内有不符合数字规范的内容 —> 转化为 NaN
数组,对象,函数
如果是 + 加号 执行的是字符串拼接效果
按照这些数据类型转化为字符串的原则来转化
如果是 其他形式的运算 执行结果都是 NaN
任何有 NaN , 参与的运算,结果都是NaN

强制转化

将其他数据类型强制转化为 数值类型
方法1 , Number(变量/数值)
将其他类型强制转化为数值类型,转化原则与自动转化选择相同
方法2, parseInt(变量 / 数据)
是获取变量或者数据的整数部分
从数据的 左侧起 解析获取 整数内容
数组执行,是获取 数值部分 也就是 没有 []的部分
获取第一个数值的整数部分,如果有就获取,如果没有,结果是NaN
如果是整数就直接获取,如果是浮点数,或者科学计数法,就获取整数部分
字符串不同了
如果是纯数字的字符串便从左侧开始,找整数部分
方法3 , parseFloat( 变量 / 数值 )
获取浮点数部分
关键是字符串
从字符串的左侧起,解析符合浮点数的部分

扩展 —— 隐式转化

隐式转化介绍
在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算
隐式转换规则
1.转成string类型: +(字符串连接符)
2.转成number类型:
++、–(自增自减运算符)
+、-、 * 、/ 、%(算术运算符)
> 、 < 、 >= 、 <= 、 == 、!=、 ===、! == (比较运算符)
3.转成boolean类型:!(逻辑非运算符)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值