• number
  • string
  • boolean
  • symbol
  • undefined
  • null
  • onject

    number

  • 整数写法:1

  • 小数写法:0.1
  • 科学计数法:1.23e4
  • 八进制写法:0123
  • 十六进制写法:0x3F
  • 二进制写法:0b11
  • +0,-0,0,Infinity,+Infinity,-Infinity,NaN
  • Number.MAX_VALUE:1.7976931348623157e+308,Number.MIN_VALUE:5e-324

    string

  • ‘你好’

  • “你好”
  • 你好
  • 转义:’it\’s ok’
  • 在字符串里回车可以受用反引号字符串
  • ‘123’.length//3
  • ‘\n\r\t’.length//3
  • ‘’.length//0
  • ‘ ‘.length//1
  • base64转码:window.btoa:正常字符串转为Base64编码的字符串。window.atob:Base64编码的字符串转为原来的字符串

    boolean

    下列运算符会得到bool值

  • !value

  • 1==2,1!=2,3===4,3!==4
  • 1>2,1>=2

    五个falsy值

  • undefined

  • null
  • 0
  • NaN
  • ‘’

    undefined和null

    区别

  • 没有本质区别

  • 如果一个变量声明但没赋值,默认值为undefined,而不是null
  • 如果一个函数没写return,那么默认return undefined
  • 默认非对象的空值写为undefined,对象的空值写为null

    变量声明

    三种方式

  • var a = 1

  • let a = 1
  • const a = 1
  • a = 1

    区别

  • var是es6之前的声明方式

  • let是es6变量的声明方式
  • const是声明时必须赋值,且不能再改的方式
  • 最后一种方式是错误的

    let规则

  • 遵循块作用域

  • 不能重复声明
  • 可以赋值,也可以不赋值
  • 必须先声明,再使用
  • 全局声明的let,不会变成window的属性
  • 与for循环配合有奇效

    const规则

    与let不同的在于声明就要赋值,且不能更改。

    变量声明

    指定值的同时也指定了类型,但是值和类型都可以随意变化

    name和’name’的区别

  • name是变量,值可变

  • ‘name’是字符串常量,不可变,值只为name

    类型转换

    number=>string

  • String(n)

  • n+’’
  • ‘’+n

    string=>number

  • Number(s)

  • parseInt(s)/parseFloat(s)
  • s-0

    x=>bool

  • Boolean(x)

  • !!x

    x=>string

  • String(x)

  • x.toString()