JS数据类型简介
2018-12-26 本文已影响0人
desperadokk
JS一共有七种数据类型:number、 string、boolean、null、symbol、undefined、object。
number
- 十进制
比如1、1.1、.1、1.23e2 - 二进制
0b或者0B开头:0b11、0B11都表示3 - 八进制
0开头:011表示9 - 十六进制
0x开头:0x11表示17
string
可以用单引号''或者双引号""引起来:‘你好’、“你好”
也可以是空字符串''或者"",注意空字符串和空格字符串' '、" "的区别,前者长度为0,后者为0 。
JS的转义符是反斜杠:
有些特殊意义的转义符如:\n回车 \t制表符
多行字符串(不是字符串里有回车)可以这样写:var s = '1234' + '5678'
boolean
boolean只有2个值:true和false
&&是与运算、||是或运算
symbol(暂时不讲)
null
只有一个值:null
undefined
只有一个值:undefined
null和undefined都表示什么都没有。
- 变量没有值——undefined
- 有一个对象object目前不考虑赋值——null
- 有一个非对象,不想赋值——undefined
上述第二、三种都是推荐用法,用另一个值也是可以的。
object
hash表:由键值对组成。如
var person ={'name': 'James',
'age': 38,
'married': true,
children: {name: Lily, 'age': 18}
}
其中键可以不加引号也可以加双引号或者单引号。
当键不加引号时,键的命名必须符合标识符原则,否则一定要用引号引起来。
hash表取值用person['name']表示'James',其中name的引号不能省略,如果键的命名符合标识符命名规范可以用person.name表示‘James’。
删除hash表内数据可以用delete person['name']或者用特例delete person.name
还有一个特例:
var obj = {
0.7: 'Hello World'
};
obj['0.7'] // "Hello World"
obj[0.7] // "Hello World"
数字键可以不加引号,因为会自动转成字符串。
注意,数值键名不能使用点运算符(因为会被当成小数点),只能使用方括号运算符。
var obj = {
123: 'hello world'
};
obj.123 // 报错
obj[123] // "hello world"
遍历对象的键值:
for(var key in person){
console.log(key, person[key])
}
hash表内键值对排列是没有顺序的。
其他
查看变量的数据类型可用typeof查看,比如:
var t = 'ssss'
typeof t
\\"string"
但是JS有两个bug:typeof null的返回值是object(应该返回null才对);function f(){} typeof f返回function(应该返回object因为函数是object)