JavaScript数据类型

257 阅读2分钟

JavaScript中的七种数据类型

  • String 字符串
  • Number 数字
  • Bool 布尔
  • Symbol 字符
  • Undefined 空
  • Null 空
  • Object 对象,(数组,函数,日期)不是数据类型,都属于Object
  • 四基两空一对象

Number 64位浮点数

  • 整数写法 1
  • 小数写法 0.1
  • 科学计数法 1.23e
  • 八进制 01213
  • 十六进制 0x3F
  • 二进制 0b11

特殊值

  • 正0和负0都等于0,但并不一样,如:
//chrom控制台的输出,
1/0
Infinity
1/+0
Infinity
1/-0
-Infinity
  • Infinity,+Infinity,-Infinity
  • 无法表示的数字,NaN(Not a Number),但仍属于数字
0/0
Nab
//NaN === NaN结果为false

String 每个字符两个字节(阉割版UTF8)

写法

  • 单引号'你好'
  • 双引号 "你好"
  • 反引号 ``

单引号里包含单引号写法

  • 转义 'it's ok!'
  • 交替使用引号 'it"s ok!'
  • 反引号

转义,用另一种写法表示你想要的东西

  • '表示'
  • "表示"
  • \n表示换行
  • \r表示回车
  • \t表示tab制表符
  • \\表示\
  • \u4f60表示对应的Unicode字符 //你
  • \x49表示前265个unicode字符 //1
  • 要打印回车使用反引号即可

字符串的属性

  • string.length 字符串的长度
'\n\t\r'.length3
'\\\\\\'.length3
''.length0
' '.length1

通过下标读取字符串

let str = 'abc'
//下标从0开始
str[0] === 'a'
str[2] === 'c'
str[3] === undefined

base64转码

  • 正常字符串转为Base64编码的字符串
window.btoa('abc')
//"YWJj"
  • Base编码转为正常字符的字符串
window.btoa('YWJj')
//"abc"

布尔boolean 真或假

运算能得到boolean值

  • 否定运算 !a
  • 相等运算 1==2、1!=2、1===2、1!==2
  • 比较运算 1>2、1>=2、1<2、1<=2

五个falsy值 falsy就是相当于false但又不是false的值,分别就是

  • undefined
  • null
  • 0
  • NaN
  • ''
  • JavaScript中其它所有都为真值

undefined和null 两种空类型

区别

  • 细节一:如果一个变量生命了,但没有赋值,默认值就是undefined,不是null
  • 细节二:如果一个函数,没有写return,那么默认return undefined,而不是null
  • 前端程序员的习惯,把非对象的空值,比如数字,字符串,布尔写成undefined,把对象的空置写成null

变量声明

  • var a = 1 过时的不好用的
  • let a = 1 es6推出的变量声明,更合理
  • const a = 1 es6推出的常量声明,声明时必须赋值,且无法再改变

let声明

  • 遵循块作用域,即使用范围不能超过{}
  • 不能重复声明
  • 声明时可赋值,也可不赋值
  • 必须先声明再使用,否则报错
console.log(a)
let a = 1
//报错
  • 全局声明let,不会变为window的属性,var会
  • for循环配合let有奇效

const声明

  • 与let几乎一致
  • 声明时就要赋值,且不可再改变值

变量声明时即指定了值,也指定了类型

类型转换

  • number => string
let a = 1
String(1) //'a'
a + '' //'a'
  • string => number
let a = '1'
Number(a) //1
a + 0 //1
+a //1
parseInt(a) //1
  • x => bool
let a = 'i'
Boolean(a) //true
!!a //true
  • x => string
String(true)
true.toString()