JavaScript里一共有7种数据类型:
1. number //数字
2. string //字符串
3. boolean //布尔
4. null //空
5. undefined //未定义
6. symbol //符号
7. object //对象
其中 object 属于 复杂类型 ; 其他的都属于 基本类型
number
我们常见的阿拉伯数字就是number(比如3和3.14)
NaN
NaN表示一个非数字,比如数字和字符串的运算的结果就是 NaN ,NaN 不等于任何值包括它自己
8 - 'x' //NaN
NaN === NaN //false
string
我们常见的文本和包在引号里的内容都属于字符串(如 HelloWorld;'123' )
字符串只能写在一行不然会报错,如果想要分成多行就要想其他方法:
- 用“\”,这种方法有个bug当“\”后面有空格时就会报错
var a = 'a\
b\
c'
- 用 "+"
var a = 'a'+
'b'+
'c'
- 用'``' ,这是ES6扩展的写法
var a = `a
b
c`
“\” 在字字符串中还有转译的作用,可以用来表示一些特殊的字符
1. \0 :null(\u0000)
2. \b :后退键(\u0008)
3. \f :换页符(\u000C)
4. \n :换行符(\u000A)
5. \r :回车键(\u000D)
6. \t :制表符(\u0009)
7. \v :垂直制表符(\u000B)
8. \' :单引号(\u0027)
9. \" :双引号(\u0022)
10. \\ :反斜杠(\u005C)
boolean
布尔的值还有两个 true 和 false
布尔与 && || 一起用时:
&& //与
|| //或
a && b 只有a和b都为真时a&&b才为真,否则为假
a || b a和b中有一个为真a||b就为真,当a和b都为假时才为假
null
用来定义变量的值为空
undefined
undefined 通常用表示变量的值未定义,它和 null 的含义很相似。他们也有不同之处
- null 通过 typeof 得到的类型是 object,而 undefined 得到的就是 undefined
- null 会被转换为 0 ,而 undefiend 不会
typeof null //object
typeof undefined //undefiend
null + 8 //8
undefined + 8 //NaN
object
对象是JavaScript语言中核心的概念,也是最重要的数据类型。 对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。
对象的创建方法
1. var obj = {}
2. var obj = new Object{}
3. var obj = Object.create(Object.prototype)
对象中键名都是字符串,如果键名是数字会被转换为字符串,键名的第一个字符如果是字符或包含运算符号和空格就必须用引号包住,不然会报错
var obj = {
'3+3': 'A',
1e2: true,
'6': 'B'
}
obj['3+3'] // 'A'
obj[3+3] //'B
obj[1e2] //true
obj[100]//true
delete
delete命令可以删除对象里的属性
var person = {
'name': '张三',
'age': '18',
'gender': 'male'
}
person.name //张三
person['name'] //张三
delete person['name'] //删除name
person['name'] = undefined //删除张三
//遍历对象
for(var key in person){
console.log(key)
}
in运算符
in运算符可以用来检测对象里是否包含某个键名,和检测是否声明变量
var obj = {
'A': '1',
'B': '2',
'C': '3'
}
'A' in obj //true
'D' in obj //false
'obj' in window //true
'obj2' in window //false
for..in循环
for..in 循环可以遍历对象
var person = {
'name': '张三',
'age': '18',
'gender': 'male'
}
//遍历对象
for(var key in person){
console.log(key)
}
//name
//age
//gender