数据类型: 指我们储存在内存的数据的类型。
js语言的每一个值,都属于某一种数据类型。

通常分为两大类:基本数据类型和复杂数据类型。

基本数据类型:
1、字符串类型(string)
文本,被单引号或双引号包裹的所有内容
2、数值类型 (number)
整数和小数,一切数字都是数值类型
3、布尔值(boolean)
表示真伪的两个特殊值 true(真) false(假)
4、undefined类型 (undefined)
只有一个就是undefined,表示未定义,没有值的意思
5、null类型 (null)
只有一个就是null,表示空值,此处的值为空。

typeof运算符

typeof关键字用于判断一个值是什么数据类型

typeof运算符返回一个值的数据类型

  1. typeof 123 //number
  2. typeof '123' //string
  3. typeof false //boolean
  4. typeof undefined //undefined
  5. typeof判断一个没有赋值的变量会返回undefined
  6. var i;
  7. typeof i //undefined
  8. 注:null的数据类型是object
  9. typeof null //object

null和undefined

null表示空值,即该处的值现在为空。调用函数时,某个参数未设置任何值,这时就可以传入null,表示该参数为空。比如,某个函数接受引擎抛出的错误作为参数,如果运行过程中未出错,那么这个参数就会传入null,表示未发生错误。

undefined表示“未定义”,下面是返回undefined的典型场景

  1. // 变量声明了,但没有赋值
  2. var i;
  3. i // undefined
  4. // 调用函数时,应该提供的参数没有提供,该参数等于 undefined
  5. function f(x) {
  6. return x;
  7. }
  8. f() // undefined
  9. // 对象没有赋值的属性
  10. var o = new Object();
  11. o.p // undefined
  12. // 函数没有返回值时,默认返回 undefined
  13. function f() {}
  14. f() // undefined

布尔值

布尔值代表“真”和“假”两个状态。“真”用关键字true表示,“假”用关键字false表示。布尔值只有这两个值。
下列运算符会返回布尔值:

  • 前置逻辑运算符: ! (Not)
  • 相等运算符:===!====!=
  • 比较运算符:>>=<<=

如果 JavaScript 预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false,其他值都视为true

  • undefined
  • null
  • false
  • 0
  • NaN
  • ""''(空字符串)

数值

特殊数值

NAN

NAN:js中的特殊数值,表示 ‘ 非数字 ‘(not a number)。
NAN不是独立的数据类型,数据类型属于number。

  1. //NAN不等于任何值,包括它自己
  2. NAN === NAN // false

判断数据类型:isNAN:可以使用 isNaN 这个方法来判断一个变量是不是数字。
isNaN方法可以用来判断一个值是否为NaN。

  1. isNaN(NaN) // true
  2. isNaN(123) // false

lnfinity

Infinity表示“无穷”,用来表示两种场景。一种是一个正的数值太大,或一个负的数值太小,无法表示;另一种是非0数值除以0,得到Infinity
Infinity有正负之分,Infinity表示正的无穷,-Infinity表示负的无穷。
Infinity大于一切数值(除了NaN),-Infinity小于一切数值(除了NaN
InfinityNaN比较,总是返回false

数据类型转换

转换为数字型:

  1. Number(变量)
    • 可以把一个变量强制转换成数值类型
    • 可以转换小数,会保留小数
    • 可以转换布尔值
    • 遇到不可转换的都会返回 NaN
  2. parseInt(变量)
    • 从第一位开始检查,是数字就转换,知道一个不是数字的内容
    • 开头就不是数字,那么直接返回 NaN
    • 不认识小数点,只能保留整数
  3. parseFloat(变量)
    • 从第一位开始检查,是数字就转换,知道一个不是数字的内容
    • 开头就不是数字,那么直接返回 NaN
    • 认识一次小数点
  4. 除了加法以外的数学运算
    • 运算符两边都是可运算数字才行
    • 如果运算符任何一遍不是一个可运算数字,那么就会返回 NaN
    • 加法不可以用

      转换为字符串类型:

      1、toString()
      将其他数据类型转换为字符串类型
      用法:var num = 1, num.toString()
      2、String() 【强制转换】
      转成字符串类型。
      用法:var num = 1,String( num )
      3、加号拼接字符串【重点】
      和字符串拼接的结果都是字符串
      用法:var num = 1,num + ‘ 字符串 ‘,

【注】toString()和String()的区别:
1、语法中的区别:toString()的括号内不能包含参数,需要以 变量.toString() 的形式使用;String()的参数需要包含在括号内,使用语法为String(参数)
2、转换值的区别:toString()不能处理转换的值是null或undefined的情况,它遇到这种情况下会在console中报错。
而String()是可以处理转换的值是null或undefined的参数,转换的值是null的返回值是null字符串,转换的 值是undefined返回值是undefined字符串。String()处理未定义的变量,返回值为undefined的字符串。