javascript的数据类型

number

  • JavaScript内部,所有数字都是以64位浮点数形式存储,整数也是。
  • JavaScript能够表示的数值范围是2-1023到21024,超出的范围的数无法表示。
  • 溢出能够表示的范围会返回Infinity(正数)或者0(负数)数值可以有多种表示方法,字面形式和科学计数法。
  • 字面形式:35 0xFF(十六进制) 123e。除以下情况外都采用字面形式表示,小数点前数字多于21位或后的零多于5个。
  • 有四种进制来表示字面量:十进制 十六进制 八进制 二进制。
  • 属于number类型的特殊数值:-0 +0 NaN 正负Infinity。
  • NaN参与的绝大部分运算都会得到诸如NaN false 这样的答案。
  • 数值相关的全局方法 parseInt() parseFloat() isNaN() isFinite()
  • 整数和小数:1 1.1 .1
  • 科学记数法:1.23e2
  • 二进制:0b11
  • 八进制:011(后来 ES5 添加了 0o11 语法)
  • 十六进制:0x11

string

  • 字符串默认只能写在一行内,分成多行将会报错,如果必须,要在每一行的结尾使用反斜杆,但反斜杆后不能有诸如空格的其他字符。
  • 连接运算符 + 可以连接多个单行字符串,将长字符串拆成多行书写。
  • length属性返回字符串长度。
  • 由于历史原因,JavaScript使用Unicode字符集。
  • btoa()将任意值1转为Base64,atob()将base64编码转为原来的值。
  • 空字符串:''
  • 多行字符串:
    var s = '12345' +
    '67890' // 无回车符号

    var s = 12345 67890 // 含回车符号

symbol

  • Symbol 的用途就是如此:Symbol 可以创建一个独一无二的值(但并不是字符串)。
  • Symbol 生成一个全局唯一的值。

null & undefined

  • 都表示没有,在真值判断中都是false,null == undefined
  • 二者的来由很有历史原因,最开始null用于标识对象为空,这也是现在tyepof null //object的原因,之后又添加了一个undefined类型。[2]
  • 二者的区别,null是一个表示‘空’的对象,转为数值时为0,undefined 是一个表示此处无定义的原始值,转为数值时为NaN。

(规范)如果一个变量没有被赋值,那么这个变量的值就是 undefiend
(习俗)如果你想表示一个还没赋值的对象,就用 null。如果你想表示一个还没赋值的字符串/数字/布尔/symbol,就用 undefined(但是实际上你直接 var xxx 一下就行了,不用写 var xxx = undefined)

Boolean

  • 除了以下值: undefined null false 0 NaN "" 或者' '其他值都视为true。
  • 空数组和空对象都是true。

object

  • 对象是一组键值对的集合(key-value),是一种无序的符合数据集合。
  • 对象里的value可以是各种类型的数据,对象里可以嵌套对象。
  • key都是字符串,可加可不加引号。
  • 存放于对象中的函数称为方法。
  • 对象属性的读取和赋值 objec.property || object['property']。
  • 可通过(Object.keys(obj)).length 获得对象key的长度。
  • 使用delete命令删除对象属性值 delete obj.p。
  • 使用in运算符检查对象中是否有某个属性 'p' in obj。
  • 使用for in 循环遍历对象属性,会跳过不可遍历属性,且遍历继承的属性。

typeof 操作符

xxx 的类型 | string | number | boolean | symbol | undefined | null | object | function
---|---|---|---|---|---|---|---|---|---|---
typeof xxx | 'string' | 'number' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'object' | 'function'

你可能感兴趣的:(javascript的数据类型)