js数据类型

数据类型决定了一个数据的特征,比如:123和”123”,直观上看这两个数据都是123,但实际上前者是一个数字,而后者是一个字符串。

对于不同的数据类型我们在进行操作时会有很大的不同。

JavaScript中一共有5种基本数据类型:

  • 字符串型(String)
  • 数值型(Number)
  • 布尔型(Boolean)
  • undefined型(Undefined)
  • null型(Null)

这5种之外的类型都称为Object,所以总的来看JavaScript中共有六种数据类型。

typeof运算符

使用typeof操作符可以用来检查一个变量的数据类型。

typeof 数据

示例代码:

console.log(typeof 123); console.log(typeof "Hello,World!"); console.log(typeof true); console.log(typeof undefined); console.log(typeof null);

  • 1
  • 2
  • 3
  • 4
  • 5

运行结果:

b9ba0a296f0c0a973fae0c2bda964929.png

String

String用于表示一个字符序列,即字符串。字符串需要使用 单引号 或 双引号 括起来。

转义字符:

8cd27bded82d24387ae42b8444f0d25e.png

注意:使用typeof运算符检查字符串时,会返回"string"。

Number

Number 类型用来表示整数和浮点数,最常用的功能就是用来表示10进制的整数和浮点数。

Number表示的数字大小是有限的,如果超过了这个范围,则会返回 ±Infinity。

  • 最大值:+1.7976931348623157e+308
  • 最小值:-1.7976931348623157e+308
  • 0以上的最小值:5e-324

特殊的数字:

  • Infinity:正无穷
  • -Infinity:负无穷
  • NaN:非法数字(Not A Number)

其它的进制:

  • 二进制:0b 开头表示二进制,但是,并不是所有的浏览器都支持
  • 八进制:0 开头表示八进制
  • 十六进制:0x 开头表示十六进制

注意:使用typeof检查一个Number类型的数据时(包括NaN 和 Infinity),会返回"number"。

Boolean

布尔型也被称为逻辑值类型或者真假值类型。

布尔型只能够取真(true)和假(false)两种数值。除此以外, 其它的值都不被支持。

Undefined

Undefined 类型只有一个值,即特殊的 undefined。

在使用 var 声明变量但未对其加以初始化时,这个变量的值就是 undefined。

注意:使用typeof对没有初始化和没有声明的变量,会返回“undefined”。

Null

Null 类型是第二个只有一个值的数据类型,这个特殊的值是 null。

undefined值实际上是由null值衍生出来的,所以如果比较undefined和null是否相等,会返回true。

注意:从语义上看null表示的是一个空的对象,所以使用typeof检查null会返回一个Object。

强制类型转换

强制类型转换指将一个数据类型强制转换为其它的数据类型。一般是指,将其它的数据类型转换为String、Number、Boolean。

转换为String类型

将其它数值转换为字符串有三种方式:toString()、String()、 拼串。

  • 方式一:调用被转换数据类型的toString()方法,该方法不会影响到原变量,它会将转换的结果返回,但是注意:null和undefined这两个值没有toString()方法,如果调用它们的方法,会报错。

     

    var a = 123; a = a.toString(); console.log(a); console.log(typeof a);

    • 1
    • 2
    • 3
    • 4
  • 方式二:调用String()函数,并将被转换的数据作为参数传递给函数,使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的toString()方法,但是对于null和undefined,就不会调用toString()方法,它会将 null 直接转换为 “null”,将 undefined 直接转换为 “undefined”。

     

    var a = 123; a = String(a); console.log(a); console.log(typeof a); var b = undefined; b = String(b); console.log(b); console.log(typeof b); var c = null; c = String(c); console.log(c); console.log(typeof c);

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 方式三:为任意的数据类型 +""

    var a = 123; a = a + ""; console.log(a); console.log(typeof a);

    • 1
    • 2
    • 3
    • 4

转换为Number类型

有三个函数可以把非数值转换为数值:Number()、parseInt() 和parseFloat()。Number()可以用来转换任意类型的数据,而后两者只能用于转换字符串。parseInt()只会将字符串转换为整数,而parseFloat()可以将字符串转换为浮点数。

  • 方式一:使用Number()函数

    • 字符串 --> 数字
      • 如果是纯数字的字符串,则直接将其转换为数字
      • 如果字符串中有非数字的内容,则转换为NaN
      • 如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
    • 布尔 --> 数字
      • true 转成 1
      • false 转成 0
    • null --> 数字
      • null 转成 0
    • undefined --> 数字
      • undefined 转成 NaN
  • 方式二:这种方式专门用来对付字符串,parseInt() 把一个字符串转换为一个整数

     

    var a = "123"; a = parseInt(a); console.log(a); console.log(typeof a);

    • 1
    • 2
    • 3
    • 4
  • 方式三:这种方式专门用来对付字符串,parseFloat() 把一个字符串转换为一个浮点数

     

    var a = "123.456"; a = parseFloat(a); console.log(a); console.log(typeof a);

    • 1
    • 2
    • 3
    • 4

注意:如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后在操作

转换为Boolean类型

将其它的数据类型转换为Boolean,只能使用Boolean()函数。

  • 使用Boolean()函数
    • 数字 —> 布尔
      • 除了0和NaN,其余的都是true
    • 字符串 —> 布尔
      • 除了空串,其余的都是true
    • null和undefined都会转换为false
    • 对象也会转换为true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值