JS数据类型

# JS数据类型

# 1. 六种数据类型

  • JS中一共分成六种数据类型 5个基本数据类型+Object
  1. String 字符串
  2. Number 数值
  3. Boolean 布尔值
  4. Null 空值
  5. Undefined 未定义
  6. Object 对象
  • typeof运算符检查数据类型

# 2. String 字符串

  • JS中的字符串需要使用引号引起来双引号或单引号都行
  • 在字符串中使用\作为转义字符
\'  ==> '  
\"  ==> "  
\n  ==> 换行  
\t  ==> 制表符  
\\  ==> \
  • 使用typeof运算符检查字符串时,会返回”string”

# 3. Number 数值

  1. JS中所有的整数和浮点数都是Number类型

  2. 最大能表示的值:Number.MAX_VALUE= 1.7976931348623157e+308

  3. 特殊的数字:能赋值给变量

  • Infinity 正无穷 a = Infinity ,能赋值
  • -Infinity 负无穷
  • NaN 非法数字(Not A Number)
  1. 其他进制的数字的表示:
  • 0b 开头表示二进制,但是不是所有的浏览器都支持
  • 0 开头表示八进制
  • 0x 开头表示十六进制
  1. 使用typeof检查一个Number类型的数据时,会返回”number”(包括NaN 和 Infinity)

# 4. Boolean 布尔值

  1. 布尔值主要用来进行逻辑判断,布尔值只有两个
  • true 逻辑的真
  • false 逻辑的假
  1. 使用typeof检查一个布尔值时,会返回”boolean”

# 5. Null 空值

  1. 空值专门用来表示为空的对象,Null类型的值只有一个
  • null
  1. 使用typeof检查一个Null类型的值时会返回”object”

# 6. Undefined 未定义

  • 如果==声明==一个变量==但是没有==为变量==赋值==此时变量的值就是undefined
  • 该类型的值只有一个 undefined
  • 使用typeof检查一个Undefined类型的值时,会返回”undefined”

# 7. 引用数据类型

Object 对象

# 8. 类型转换

  • 类型转换就是指将其他的数据类型,转换为String Number 或 Boolean

# 8.1 转换为String

# 方式一(强制类型转换)调用被转换数据的toString()方法

var a = 123;
a = a.toString();
  • 注意:这个方法不适用于null和undefined
  • 由于这两个类型的数据中没有方法,所以调用toString()时会报错

# 方式二(强制类型转换)调用String()函数

var a = 123;  
a = String(a);
  • 原理:
  • 对于Number,Boolean,String都会调用他们的toString()方法来将其转换为字符串
  • 对于null值,直接转换为字符串”null”
  • 对于undefined直接转换为字符串”undefined”

# 方式三(隐式的类型转换)为任意的数据类型 +””

var a = true;  
a = a + "";
  • 原理:和String()函数一样

# 8.2 转换为Number

# 方式一(强制类型转换)调用Number()函数

var s = "123";  
s = Number(s);

# 转换的情况

  1. 字符串 > 数字
  • 如果字符串是一个合法的数字,则直接转换为对应的数字
  • 如果字符串是一个非法的数字,则转换为NaN
  • 如果是一个空串或纯空格的字符串,则转换为0
  1. 布尔值 > 数字
  • true转换为1
  • false转换为0
  1. 空值 > 数字
  • null转换为0
  1. 未定义 > 数字
  • undefined 转换为NaN

# 方式二(强制类型转换)调用parseInt()或parseFloat()

  • 这两个函数专门用来将一个字符串转换为数字的

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

  • 可以将一个字符串中的有效的整数位提取出来,并转换为Number

var a = "123.456px";  
a = parseInt(a); //123
  • 如果需要可以在parseInt()中指定一个第二个参数,来指定进制
a = parseInt(a, 10) /*转换*/
  • parseFloat()可以将一个字符串中的有效的小数位提取出来,并转换为Number
var a = "123.456px";  
a = parseFloat(a); //123.456

# 方式三(隐式的类型转换)使用一元的+来进行隐式的类型转换(或二元的-*/)

var a = "123";  
a = +a;
  • 原理:和Number()函数一样

# 8.3 转换为布尔值

# 方式一(强制类型转换)使用Boolean()函数

var s = "false";  
s = Boolean(s); //true

# 转换的情况

  1. 字符串 > 布尔
  • 除了空串其余全是true
  1. 数值 > 布尔
  • 除了0和NaN其余的全是true
  1. null、undefined > 布尔
  • 都是false
  1. 对象 > 布尔
  • 都是true

image

# 方式二(隐式类型转换)为任意的数据类型做两次非运算,即可将其转换为布尔值

var a = "hello";  
a = !!a; //true

# 9. 数据类型的判断

# 9.1 typeof

  • 是运算符不是函数
  • 返回数据类型的字符串表达
  • 可以判断:undefined / 数值 / 字符串 /布尔值 / function
  • 不能判断:null与object / object和array(都返回object) typeof null ----> object

# 9.2 instanceof

  • 判断对象的具体类型

# 9.3 ===

  • 可以判断:undefined / null
上次更新: 2022/5/11 20:10:51