数据类型
JavaScript有七种数据类型
基本类型(简单类型)
数值 number
-
十进制
1
1.1 .1
1.23e(E)2 1.23 * 10的2次方
-
二进制
0b开头
0b1
0b11
-
八进制
01开头
-
十六进制
0x开头
字符串 string
可以用'单引号'和'双引号'
也可以用'' ""表示空字符串 长度是0
' ' 表示空格字符串 长度是1 和空字符串做区别
-
转义 《编码》code
var a = ''' 用 var a = "'"
var a = '\ '' 表示单引号 \就是转义符 长度1
var n ='\n' 回车 长度1
var t ='\t' Tab(制表符) 长度1
var b ='\ \ ' 表示\符号
-
多行字符串(不是字符串里有回车)
var s = '12345 \ 坑人的语法
67890'
var s3 = '12345 \ 空格 空格 报错
67890’
var s ='12345
67890' 报错
var s2 = '12345' + 好用的语法
'67890' 这种也可以 这种表示方式更好
ES6 var s4 =`12345回车
67890` 长度11 包含回车
布尔 boolean
布尔(数学家)发明了逻辑学
true 真
false 假
&&与 a&&b 都真为真
||或 a||b 有一个真则真 都假为假
null类型
一个值 null
undefined类型
一个值undefined
null 和 undefined 表示什么也没有 这是js之父的bug
-
区别:
1.变量没有赋值,就是undefined 不是null 语法
2.有一个对象object,现在不想赋值 推荐给null 惯例
var obj = null
有一个非对象,现在不想赋值,推荐给undefined
Symbol(符号)
复杂类型
<u>复杂类型是由简单类型组成的</u>
对象 object 数组和函数都是对象
哈希表
--简单类型---------------------
var name = 'zhangsan'
var age = 18
var gender = 'male'
--复杂类型---------------------
var person = {
'name': 'zhangsan',
'age': 18,
'gender': 'male' //最后一行如果是ES3(IE7以下)就不能加逗号,如果是ES5(IE8以上)就能加逗号
}
- 语法:
var person = {
key: value // 左边是字符串,可以省略引号,但是还是字符串 value可以是别的简单类型,也可以是对象
}
person[key] 这里的字符串不能省略引号
----------------------------------------
var obj = {
9a: "aaa" //报错
'9a': "aaa" // 正确
a b: "aaa" // 报错
'a b': "aaa" // 正确
: "aaa" // 报错
' ': "aaa" // 正确
你好: "aaa" // 正确
// Key如果不加引号,不许遵循变量名的规则
}
person['name']
person.name 特例 name===‘name'
-
delete person['name'] 删除key
person.name // undefined 无value key和value都清空
'name' in person // false 无key
person.name = undefined // 把value设置为undefined key还在
'name' in person // true
for...in
var person = {name:'zhangsan', age: 18}
for (var key in person) {
console.log(key)
}
// name
// age
// name和age的顺序不确定
- 查看一个对象本身的所有属性,可以使用
Object.keys
方法。
typeof
var t = 1
typeof t // "number"
var t = "sssss"
typeof t // "string"
var t = true
typeof t // "boolean"
var t = undefined
typeof t // "undefined"
var t = {}
typeof t // "object"
var t = null
typeof t // "object" BUG
function fn() {}
typeof fn // "function" BUG2