数据类型转化

类型转化

定义: Js中的类型是针对值来说,而不是针对变量,值就是所谓的42, ‘abc’, false 等能用js 操作的数据。在js 中说某某某是什么数据类型,其实是说的这些值是什么类型。主要分为两种类型:

  1. 基本数据类型: number Boolean string null undefined
  2. 引用型数据类型: array object function 等
    **判断一个数据是什么类型的,一般使用typeof()来判断

一. 其他类型转化为number类型

  • 转化规则:
  1. 一般数字字符转化的都是数字;
  2. 空字符串和纯空格字符串转化为0;
  3. 其他字符转化的是NaN (NaN不能进行运算, 如果运算要么是NaN,要么是false );
  4. true 转化为1, false转化为0 .
  • 其他类型隐式转为number类型实例:
- 发生隐式转化相当于触发了Number( )函数;
       var num = 12; //--> 12
       var str = `123`; //--> 123
       var str1 = `非字符字符`;  //--> NaN
       var str2 = `  `;  //--> 0 
       var str3 = ``;  //--> 0 
       var boo1 = true;  //--> 1
       var boo2 = false;  //--> 1
  • 运算时发生隐式转化(触发了Number ( ) )的具体步骤:
var res = `234` - 1;  // 233  触发隐式转换Number()
        // 234 - 1
        // 233
var res1 = `非数字字符` - 1;  // NaN 
        // `NaN`  -  1  ( 由于NaN不能进行运算,所以结果为NaN )
        // NaN
var arr1 = [1, 2, 3] - 1  // NaN  (由于','不是数字字符,转化为NaN)
        // `1,2,3` - 1
        // NaN -  1
        // NaN
var arr2 = [1] - 1  // 0
        // `1` - 1
        //  1 - 1
        // 0
var arr3 = []  // 0
        // `` = 0

总结:

如果是引用型数据类型运算,先转化为字符串,再转其他类型,最后在运算;
基本类型数据之间的相互转化只转一次, 引用类型转基本类型 先变字符串 再变其他.

二. 其他类型转化为string类型

  • 转化规则:
  1. 一般基本数据类型都会转化为自身的字符串类型;
  2. 引用型数据类型空数组转化为空字符串;
  3. 非空数组转化为其数组对应的字符串
  4. 注意: 无论是空对象还是非空对象,转化的都是’[object Object]’
  • 其他类型隐式转为string类型实例:
 - 发生隐式转化相当于触发了String( )函数;
        console.log(String(123)); // --> '123'
        console.log(String(true)); // -->'true'
        console.log(String(``)); //-->''
        console.log(String(undefined)); // -->'undefined'
        console.log(String(null)); // -->'null'
        console.log(Number(String([]))); //-->'0'
        console.log(String([1,2,3])); // -->'1,2,3'
        console.log(String({})); //-->'[object Object]'
        console.log(String({name:`qwe`})); //-->'[object Object]'
  • 运算时引用型数据类的隐式转化:
 var res = [123,12]+{}
        // `123,12`+`[object object]`
        // `123,12[object object]`;
        console.log(res);

三. 其他类型转化为Boolean类型

  • 转化规则:
  1. 基本数据类型: 0 false null undefined ‘’ NaN 转化为false;
  2. 引用型数据类型: 数组 对象 函数转化为true;
  • 什么情况下会隐式转化为布尔类型?

个别情况关系运算符 和 比较运算符 例如 : > < >= <== == !=

  • 其他类型隐式转为Boolean类型实例:
- 发生隐式转化相当于触发了Boolean( )函数;
        console.log(Boolean(false));  // false
        console.log(Boolean(0));  // false
        console.log(Boolean(``));  // false
        console.log(Boolean(undefined));  // false
        console.log(Boolean(NaN)); // false
        console.log(Boolean(null));  // false
        console.log(Boolean([]));   // true
        console.log(Boolean({}));  // true
        console.log(Boolean(function(){}));  // true
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值