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'