JavaScript 基础之数据类型 & 数值转换 & 相等操作符

160 阅读3分钟

基本数据类型

  • Undefined
  • Null
  • Boolean
  • String
  • Number

复杂数据类型

Object 它每个实例都具有下列属性和方法:

  • constructor
  • hasOwnProperty(propertyName): 检查给定的属性是否在当前对象实例中存在。
  • isPrototypeOf(object):检查传入的对象是否是当前对象的原型。
  • propertyIdEnumerable(propertyName):检查给定的属性是否能够使用 for-in 语句来枚举。
  • toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
  • toString():返回对象的字符串表示。
  • valueOf():返回对象的字符串、数值或布尔值表示,通常与 toString() 方法的返回值相同。

typeof

  • "undefined"
  • "boolean"
  • "string"
  • "number"
  • "object"
  • "function"
  • "symbol"

浮点数

浮点数值的最高精度是17位小数

NaN 与任何值都不相等 isNaN(NaN) true

数值转换

Number()

数据类型 转换后的数据
Boolean值 true -> 1,false -> 0
数字 数字
null 0
undefined NaN
字符串 1.字符串只包含数字,则将其转为十进制数值(前导的0被忽略);
2.含有有效的浮点格式,则转换为浮点数(前导的0被忽略);
3.字符串中包含有效的十六进制格式,'0xf',被转换为相同大小的十进制数值;
4.字符串是空,转换为0;
5.如果字符串中包含除上述格式之外的自负,则将其转换为 NaN
对象 调用 valueOf() 方法,然后依照前面的规则转换返回的值,如果转换的结果为 NaN,则调用对象的 toString()方法,然后再次依照前面的规则转换返回的值

parseInt()

  1. 忽略字符串前面的空格,直到找到第一个非空格字符。如果第一个字符不是数字字符或者负号,parseInt()会返回 NaN;如果第一个字符是数字字符,那么会继续解析,直到解析完所有后续字符或者遇到一个非数字字符。
  2. 如果是"0x"开头,会解析为16进制。
  3. 如果是"0"开头切后跟数字字符,则会当作八进制来解析。

parseFloat()

与parseInt()类似,parseFloat()从第一个字符开始解析每个字符,而且也是一直解析道字符串末尾,或者解析到遇到一个无效的浮点数数字字符为止。字符串中第一个小数点是有效的。 它始终会忽略前导的0。

相等操作符

数据类型 比较前转换的类型
有一个操作数是布尔值 先将其转为数值
false->0 true->1
一个操作数是字符串,另一个操作数是数值 字符串转换为数值
一个操作数是对象,另一个操作数不是 调用对象的 valueOf() 方法,
用得到的基本数据类型值按照前面的规则进行比较
null 和 undefined 相等
有一个操作数是 NaN 相等操作符返回 false
两个操作数都是对象 比较它们是不是同一个对象。
如果两个操作数指向同一个对象,则相等操作符返回 true

注意:此处是相等操作符"==",而不是全等操作符"==="