JS 里的数据类型
JS里有七种数据类型
Number String Boolean undefined null symbo 和Object
这些数据类型除symbo是ES6新特性外其它的六种都是原有的类型,JS中除开这七种不存在其他多于的数据类型,常见的误解是function 和 array
typeof会多出来一种数据类型 function 这是JS的一个著名BUG,其实function和array都要归为对象的类型中
function实际上是object的一个“子类型”。具体来说,函数是“可调用对象”。 --你不知道的JavaScript中卷
所以我们常见的 JS中一切都是对象的说法是错误的,正确来说是除上面的6种数据类型之外都是对象
object与其它六种类型的数据要许多不同的名字,最常见的就是
- 简单类型与复杂类型
- 原始类型和复杂类型
我比较喜欢叫简单类型与复杂类型比较顺口
number
number类型的展现形式不同,其主要的是进制的不同造成的
主要的进制有
- 十进制
- 二进制 0b开头
- 八进制 0开头
- 十六进制 0x开头
string
转义字符
在字符串中有许多特殊的字符来显示特定的功能
字符串的表现形式为单引号或者双引号,那么如果我在单引号中使用单引号就会出现错误,所以就出现了转义字符,告诉JS引擎这个东西如何显示
反斜杠开头 比如 /t 制表符 /n 回车 /' /" 单双引号 且转义字符的长度都为1
console.log('/t') // 1
多行字符串
在写字符串的时候,字符太长或者需要跳到下一行输出时,多行字符串就有用了
第一种写法 var s = '12345 \
34567'
这样可以实现多行字符,但是很容易出现bug且不具有易读性,因为在 \ 如果不小心多输出了几个空白符就会出现bug且不容易找到,所以不推荐
var s = '1234 \ 3456' console.log(s)
-
"error"
-
"l</b.render/<@https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:13922
k</a.use/<@https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:10866
"
第二种写法 var s2 = ‘12345'
+'67890'
这种写法是推荐写法
第三种写法 反引号 ` `
所以ES6觉得这样太麻烦了所以推出了反引号的写法,但需要注意的一点是反引号是包含了回车符
var s = `sad as` console.log(s.length) // 6
boolean
只有两种值,且false和true
object 对象
我们来讲一下JS中唯一的复杂类型,复杂类型由简单的类型组成
var name = "frank"
var age = 18
var garrder = 'null'
变成对象就是
var obj = {
name: 'frank',
age: 18,
garrder: 'null'
}
且对象里的键值只支持字符串,且键值不加引号,就会有很大限制,如必须用标识符的方式来声明
如果要删除对象里的键值和value
就需要使用 delete person['name'] ,删除key和value
浙公网安备 33010602011771号