JavaScript 有7种数据类型:
- number(数值)
- string(字符串)
- Boolean(布尔)
- Symbol(符号)
- null
- undefined
- object(对象)
前6种为基本类型(简单类型),object为复杂类型,复杂类型的值由简单类型组成。
number
十进制
1
0.1
.1
1.23e2
1.23E2
二进制
0b11
0B11
值为十进制的3
八进制
011
值为十进制的9
十六进制
0x11
0X11
值为十进制的17
string
'你好'
、"你好"
''
、""
空字符串长度为0
' '
、" "
空格字符串长度为1
转义符 \:
代码 | 表示 |
---|---|
'\'' |
单引号 |
'\n' |
回车 |
'\t' |
Tab 制表符 |
'\\' |
转义符 \ 本身 |
上表中字符串长度均为1。
多行字符串:
var s1 = '12345\
67890'
var s2 ='12345' +
'67890'
推荐第二种,第一种容易出 bug(/后面多写了空格)
ES6 可以用反引号`写多行字符串:
var s3 = `12345
67890`
字符串s3的长度为11,包含反引号中的回车和空格。
boolean
值为true 或 false
&&
与运算
||
或运算
null
值为 null
undefined
值为 undefined
null 与 undefined 的区别
- 如果一个变量没有赋值,那么他的值是 undefined。
- (惯例)如果一个对象(object),暂时不想给他值,用 null。
如果一个非对象(number、string等),暂时不想给他值,用 undefined。
object
对象就是简单类型的组合。
var person = {
'name': 'frank',
'age': 18,
married: true,
children: {name: 'xxx', age: 1},
xiaosan: undefined,
self: person,
'': 'frankxx',
'a b': 'a b c',
}
花括号里面可以是其他简单类型,也可以是另一个对象,甚至可以时自己。
冒号左边是 key(又称属性),key必定是字符串,花括号中的 key 的引号可以省略,如果不加引号,key的命名规则必须遵守标识符(变量名)的命名规则。
花括号中最后一组值后面的逗号在 ES3 中不能有,在 ES5 中可以有。
person['name']
person.name
使用时方括号中 key 的引号不能省略。
在 key 的命名规则遵守标识符(变量名)的命名规则的情况下,使用时可以用 person.name 的形式。
delate person['name']
delate person.name
可以删除一组 key 和value。
for(var key in person){
console.log(key, person[key])
}
遍历对象里的 key 和 value。
Object.keys(person)
查看对象的所有属性。
'name' in person
检查对象里是否有某个属性。
with
var obj = {
p1: 1,
p2: 2,
};
with (obj) {
p1 = 4;
p2 = 5;
}
// 等同于
obj.p1 = 4;
obj.p2 = 5;
with 语句的一个很大的弊病就是绑定对象不明确,建议尽量不要使用with语句。
typeof
返回变量的数据类型。
变量 | typeof |
---|---|
number | "number" |
string | "string" |
boolean | "boolean" |
symbol | "symbol" |
null | "object" // Bug之一 |
undefined | "undefined" |
object | "object" |
function | "function" // Bug之二 |
网友评论