第三章 数据类型

1 JS 中数据类型的划分

1.1 原始类型

  • Number 数值
  • String 字符串
  • Boolean 布尔值 true(真)/false(假)
  • Null 空
  • Undefind 未定义

1.2 对象类型

  • Array
  • Object
  • Function
  • RegExp
  • Error
  • Math
  • Date
  • ..........

2 数据类型检测

typeof()

3 原始类型介绍

3.1 number 数值类型

① 整型 (整数)

  • 十进制表示
  • 八进制表示 010 (不推荐)
  • 十六进制表示 0xf90

② 浮点 (小数)

  • 直接写小数
  • 科学计数法,表示较大的数;2.3e3
  • 浮点的精度问题(十进制小数转为二进制小数,大部分无法精确转换;整数不存在这个问题)

③ JS中数值的范围

  • 5e324 ~ 1.7976931348623157e+308
  • 如果超过范围,会表示为 Infinity 或者 -Infinity

④ 特殊的数值 NaN

  • NaN是number类型,是一个数值
  • 特点1:NaN与任何数进行任何运算结果都是NaN
  • 特点2:NaN与任何数都不相等,包括自己

⑤ 数值相关的运算符

+  -  *  /  %

⑥相关函数

isNaN()   判断数据是否是NaN, 是返回true,否则返回false
isFinite() 判断数据是否在范围内,在范围内返回true,否则false

3.2 string 字符串类型

① 定义字符串

  • 使用单引号或者双引号,没有区别
  • 单引号不要嵌套单引号;双引号,同理; 非要嵌套对引号进行转义 \' \"

② 转义字符

\n  表示换行符
\r  表示回车符
\t  水平制表符 tab
\' 单引号     
\" 双引号     
\\ 反斜杠 
\uXXXX 四位十六进制表示unicode字符串
\xXX 两位十六进制表示拉丁字符

③ 字符串连接符

+

3.3 boolean 布尔值

布尔值表示 真或假 开或关 是或否。

有 true 和 false 两个值

3.4 null 和 undefined

null表示没有对象,即该处不应该有值:

1) 作为函数的参数,表示该函数的参数不是对象。

2) 作为对象原型链的终点。

3) 获取 DOM 获取不到的时候。

undefined表示缺少值,即此处应该有值,但没有定义:

1)定义了变量没有给值,显示 undefined。

1)定义了形参,没有传实参,显示 undefined。

2)对象属性名不存在时,显示 undefined。

3)函数没有写返回值,即没有写return,拿到的是 undefined。

4)写了return,但没有赋值,拿到的是 undefined。

4 数据类型的转换

4.1 强制转换(显示转换)

① 转换函数

Number()    把其他类型数据转为Number类型
parseInt()    
parseFloat()

String()      把其他类型数据,转为Stirng

Boolean()   把其他类型的数据转为布尔值

② 其他类型数据转为 Number 规则

其他类型数据转为数值类, 使用Number()函数
    字符串:  纯数字字符串转为对应数字、空字符串转为0, 其他都是NaN
    布尔值: true->1  false->0
    null: 转为 0
    undefined: 转为 NaN

其他类型数据转为数值类, 使用parseInt()和parseFloat函数
    用于从字符串中提取数字,其他类型的数据都是转为NaN
    以数字开头或者纯数字,可用从字符串中提取数字部分;
    空字符转为NaN
    parseInt获取小数点之后,提取整数;parseFloat提取浮点数

③ 其他类型数据转为 String 规则

数字转为字符串: 原样转换, 十六机制和科学计数法表示的数字转换后是十进制的数字
其他类型,原样转换输出

④ 其他类型数据转为 Boolean 规则

数字转为布尔值: 0转为false;其他都是true
字符串转为布尔值:  空字符串转为false, 其他都是true
null 转为 flase
undefined 转为 false

4.2 自动转换(隐式转换)

JavaScript 是弱类型语言,所以可以进行自动类型转换。

在某种运算环境下,数据自动转换类型:

数值的运算环境,  表达式中有数字运算符: + - * / % ++ --
字符串的运算环境, 表达式中有+,且一边是字符串, 另外边的数据肯定自动转为字符串
布尔值的运算环境, 条件判断的时候 if (数据)  数据会自动转为布尔值

自动类型转换的规则同强制类型转换的规则是一致的。

results matching ""

    No results matching ""