1. number
  2. string
  3. boolean
  4. symbol
  5. null
  6. undefined
  7. object


number

  • 由64位浮数点组成,可以有整数,小数,科学计数法,
  • 正0和负0要分清楚,+infinity和-infinity
  • 无法表示的数字用NaN表示,NaN也是一个数字
  • 0用来表示正,-1用来表示负


string

写法:单引号括起来(’ ‘),双引号括起来(" "),反引号括起来(`)<br />\是个转移符号,字符串也可用&quot;\uFFFF&quot;四个十六进制数来表示<br /> `里面可以加回车
string里有个length属性
问:’\n\t\r’的length是多少?答: 3,\n,\t,\r分别为一个整体,所以length为3
问:\\\的length是多少?答: 3, \是一个整体,表示一个反斜杠
问:’’的length是多少?答:0,这是个空字符串
问:’ ‘的length是多少?答:1,里面是一个空格
string里还有下标,从0开始,到length-1,即 0~length-1

bool

只有两个值,true和false
否定运算、比较运算、相同运算都会得到布尔值
五个falsy值;相当于false但又不是false的值

  1. undefined
  2. null
  3. NaN
  4. 0
  5. ‘’(空字符串)


undefined和null

本质上没有区别
细节一:变量声明了却没有赋值,默认值为undefined
细节二:一个函数没有写return,默认为return undefined
细节三:习惯上,非对象空值:undefined;对象空值:null

symbol

不怎么常用,还未做过了解

变量的声明

ES6有两种新语法

  1. let a =1
  2. const b =2//一般用作常量声明

let 和 for 搭配有奇效
const 声明了一定要赋值,而且值不能改变

类型转换

number => string

  1. 例如 let n=1
  2. String(n)将非string转换为string
  3. n+’’
  4. (n).toString()
  5. n..toString()

string => number

  1. let a = ‘2233’
  2. Number(a)
  3. a - 0
  4. parseInt(a)


x => bool

  1. Boolean(0) = false , !!0 = false
  2. Boolean(1) = true , !!1 = true

bool => string

  1. true.toString()
  2. false.toString()