js的数据类型和数据类型之间的相互转换

1 数据类型

1.1 基本数据类型

  • number 数字型

  • string 字符串类型

  • boolean 布尔类型

  • undefined 未定义类型

  • null 空类型

    1.1.1 数字类型
  • 整数

  • 小数

  • 负数

    拓展:
    科学计数法:let num = 3e+5 console.log(num)//300000 表示3乘10的5次方
    let num = 3e-5 console.log(num)//0.00003 表示3乘10的负5次方
    console.log(1 / 0); //Infinity 无穷大
    console.log(-1 / 0); //-Infinity 无穷小

    NaN: not a number,表示一个非数字的特殊值
    注意事项:

    1. NaN的类型是number类型的,表示一个非数字
    2. NaN不等于任何值,包括NaN自己
    3. 通过 isNaN 可以判断数据是否为数字,返回false的时候,表示是一个数字,返回true的时候,表示不是一个数字
    let a = 'abc'
    let b = 123
    let c = a - b
    console.log(c)//NaN
    js

    小数会出现不精准的问题:


    解决方法:

    1. 根据小数点后面的位置数,乘以对应的整数,最后在除以这个整数
      console.log(0.2*10+0.1*10)
    2. 使用toFixed(数字)方法,强制保留小数后几位
      let a = 0.1 + 0.2
      console.log(a.Fixed(1));//保留小数点后一位
1.1.1 字符串类型

通过单引号或双引号包裹的任意字符串

拓展:

  • 单引号里面可以放双引号,双引号里面可以放单引号,但是两者均不可以放置其自身
  • 转义符号 \ (反斜杠),能够把引号的特性去除掉
  • 字符串拼接: 当输出的内容有一方是字符串类型,通过 + 进行运算时,另一方也会变成字符串,再进行拼接
  • 模版字符串 ``:不仅支持文本换行书写,还支持解析变量功能
1.1.2 布尔类型 boolean

代表事物的真(true)与假(false)

1.1.3 未定义类型

在 JavaScript 中,undefined 是一个特殊的值和数据类型。当一个变量声明但未赋值时,该变量的值就是 undefined。它表示一个未定义或未初始化的值。

1.1.4 空类型

在 JavaScript 中,null 是一个特殊的值和数据类型。它表示一个空值或者不存在的对象。与 undefined 不同,null 是 JavaScript 保留关键字,而 undefined 只是一个常量。也就是说可以声明名称为 undefined 的变量,但将 null 作为变量使用时则会报错。

null 与 undefined 的区别:
undefined 是表示一个未定义或未初始化的值,常用于声明但未赋值的变量,或者访问不存在的属性。
null 是一个被赋予的值,用于表示变量被故意赋值为空。
在判断变量是否为空时,使用严格相等运算符(===),因为 undefined 和 null 在非严格相等运算符(==)下会相等。

1.2 引用数据类型(或者叫复杂数据类型)

  • Object 对象类型

  • Array 数组类型

    1.2.1 对象

    JavaScript 中,Object 是一个内置的基本数据类型和构造函数。是一组由键、值组成的无序集合,定义对象类型需要使用花括号{ },它是 JavaScript 中最基本的对象类型,也是其他对象类型的基础。

    1.2.2 数组

    JavaScript 中,数组(Array)是一组按顺序排列的数据的集合,数组中的每个值都称为元素,而且数组中可以包含任意类型的数据。在 JavaScript 中定义数组需要使用方括号[ ],数组中的每个元素使用逗号进行分隔。

1.3 查看数据类型

let name = '小美'
console.log(typeof(name)) => string
js

2 数据类型的转换

  • 转换为Boolean类型

2.1 转换为Boolean类型

语法: Boolean(值)
值的类型:

  • 数字类型 0为false,其它的都为true,包括负数

  • 字符串类型 ''空字符串为false,其它的都为true,引号里面敲个空格 ' ' 也为true

  • undefined 为false

  • null 为false

  • 对象 对象为null时为false,其它情况为true

    总结:数字0,空字符串,undefined,null都为false,其余的为true

    2.2 转换为字符串类型

语法: String(值) 或 值.toString()

转字符串就是在数据上添加 '' "",在进行复杂数据类型转换的时候,[] 数组中的数据中的数据都变成字符串类型,{ } 对象中的数据不受影响并以object表示结果

2.2 转换为数字

语法: Number(值)
值的类型:

  • 字符串 当字符串里面放的是数字是类型时能够转换成具体数字,空字符串为0,其它情况为NaN
  • 布尔类型 false转换为0,true转换为1
  • undefined 为NaN
  • null 为NaN

总结:数字类型的字符串能够转换为具体的数字。空字符串,false,null,[]转换为0,true转换为1,其它都是NaN

拓展:parseInt(值)取整 parseflo(值)保留小数位 这两个方法也能把其他类型转换为数字类型,并且有以下特点:

2.3 隐式转换

隐式转换:

  • 当进行数学运算的时候(除了+号),数学运算符会把两边的数据转换为数字再进行数学运算
  • 当进行比较运算的时候,比较运算符有一边是数字类型,那么另外一边也会转为数字类型,再进行大小的比较

要注意的是当两边都是字符串的时候比较的是ascll码值

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值