JS有7种数据类型,其中又分基本类型(简单类型)和复杂类型,复杂类型由基本类型组成。
Number类型
二进制 | 八进制 | 十进制 | 十六进制 |
---|---|---|---|
一般以0b开头 | 一般以0开头 | 1 , 1.1 , .1 | 以0X开头 |
1 | js中一般可以.1表示1.1,可以用到科学计数法。 |
String类型
1 | '你好',"你好",'',"",' '," ",都是字符串。 |
在JS中,有个符号叫做转义符号是\
,它的作用有:
1 | let a = '\`' // a = ' 表示单引号 |
多行字符串(不是字符里有回车):
1 | let s = '12345 \ |
Boolean类型
boolean
类型只有2个值,一个是true
,一个是false
。
1 | let a = ture |
其中还有&&
(与运算),||
(或运算),!
(取反运算)。
与运算,只要有一个为false,所有值为false:
a&&b | true | false |
---|---|---|
true | true | false |
false | false | false |
或运算,只要有一个为true,所有值为true:||
符号打出来制表有点问题,用或
代替||
a或b | true | false |
---|---|---|
true | true | true |
false | true | false |
取反运算,一般用来将其他数据类型转换为boolean
数据类型:
1 | !true // false |
Null类型
null类型只有一个属性就是null.
Undefined类型
undefined类型也只有一个属性为undfined.
null
和 undefined
都表示什么也没有 是JS之父设计JS的BUG。
其中有2点值得说明一下。
1.变量声明没有赋值时,一般用undefined。
2.有一个对象,但是现在不想赋值,一般用null。
1 | let n // n为undefined 声明了没有赋值 |
一般惯例是 null
表示空对象,undefined
表示空非对象。
Symbol类型
暂时不写。
以上6种为简单类型
Object类型
object为复杂类型,由以上6种基本类型组成。
Array和Function不是基本类型,都属于Object类型。
对象的声明
1
2
3
4
5
6
7
8
9
10
11
12
13let name = 'lee';
let age = 18
//上面这种相关属性可以写到一个对象里,即:
var person = {
'name':'lee',
'age':18, //其中这个逗号在ES3(IE7以下)的时候不可写,但是ES5(IE8以下)支持这种语法了。
}
//上面这种写法还可以写成
var person = {
name:'lee',
age:18, //对象默认左边key值为字符串,加不加引号,都不会出错,
// 但是右边value属性只能是字符串或者数字
}读对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27let person = {
name:'lee', // 对象里可以是String类型
age:18, // 对象里也可以是Number类型
married:false, // 对象里还可以是Boolean类型
children:{ // 对象里可以是对象
name:xxx,
age:1
}
}
//对象还可以是他自己:
let person
person = {self:person}
person['name'] //这是正确的读取属性写法,在符合标识符情况下,还可以
person.name //用这种写法来读取属性
person[name] //这是错误的写法
let name = 'fuck'
person[name] === person['fuck'] //值为undefined
// key 可以是空字符串'',
// 但不能是字符串与数字的组合例如'8a','a8','1a2',
// 这种类似的 key 想要使用,必须用''或者""引号括起来。删除对象属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16let person = {
name:'lee',
age:18,
married:false,
children:{
name:xxx,
age:1
}
}
delete person['children']
person['children'] //再次访问children的属性则为undefined 无value
'children' in person // false 无key
//另一种方法
person['children'] = undefined // 无value
'children' in person // true 有keyfor...in
遍历对象1
2
3
4
5
6
7
8
9
10
11let person ={name:'lee',age:18}
for(let key in person){ // 遍历key
console.log(key) // key 可以是name先出现,也可以是age先出现
}
for(let key in person){ // 遍历key的值,即key对应的value
console.log(person[key]) // 这种是正确的写法,
// person['key']和person.key是错误的写法
}
for(let key in person){ // 遍历key和对应的value
console.log(key,person[key]) // 浏览器会弹出key名 和value对应的字符串或者数字
}
有一个typeof
方法可以查询基本类型是什么,但是有2个BUG:
1 | let a = '你好' |
这就是JS的7种数据类型,我认为JS之父说的一句话很好,『原创之处并不优秀,优秀之处并非原创』,一起继续学习,继续改进。
__END__