20.JS的数据

20.JS的数据

JS的历史

JavaScript是网景的商标™

JavaScript7种数据类型

number 数字
string 字符串
boolean 布尔值
symbol 符号
null
undefined
object 对象

number 数字

二进制 0b11 以0b开头
八进制 011 以0开头
十六进制 0x11 以0x开头

String 字符串

‘’和””空字符串 字符串长度0
‘ ‘和” “中间有野葛空格 字符串长度1
转义 看《编码》 反斜杠\ 正确的向浏览器表达意思

1
2
3
4
var a = '\'' 单引号
var n = ' \n' 回车(13
var t = ' \t' Tab(制表符)
var b = ''\\'' \符号

多行字符串

1
2
3
4
5
6
7
8
9
10
 var s = '12345\
67890'

var s2 = '12345' + '67890' //更好

var s3 = '123456 \
67890' //会报错,注意空格的转义

var s4 = `12345
67890` //ES6 的语法 注意不要写空格,包含回车

boolean 布尔值

是个人,发命令逻辑学
基本单位 true false

&&与运算\或运算

1
2
a&&b(a,b都为true为真)
a\\b(a,b都为false为falsr)

null 类型 和 undefined 类型

JS的原创 什么都没有
区别1:变量没赋值,为undefined
区别2:有一个对象,不想赋值,推荐给null var obj = null,有一个非对象,不想赋值,推荐给undefined
对象对应null 非对象对应undefined都表示没有给值

object 对象/哈希表(key,value)

之前的为基本类型,object是复杂类型,由简单类型组成

1
2
3
4
5
6
7
8
9
var name = 'arita'
var age = 24
var gender = 'male'
如可以表示为
var person = {
'name':'arita', //逗号隔开,不一定只有一个值
'age':24,
'gender':'male'
}

语法

1
2
3
4
5
6
7
8
9
var person={
name : 'arita'
age : 24,
children: { name:'xxx', age:1,},
}
引用
person['name'] //单引号不能省略
person.name //当符合标识符格式时(特例)
person[name] 相当于 person['arita' ]

1
2
3
4
5
'' : 'arita'//可以
person[''] = 'frank
9a : 'arita' //不可以 不符合标识符原则
'9a' : 'arita'
//加引号可以都行

删除

1
2
3
delete person.name //undefined(无value,无key)
delete
person.name = undefined //key存在

遍历对象
for in

1
2
3
4
5
6
for(var key in person){
console.log(key)
}
for(var key in person){
console.log(key, person[key]) //不能person.key 因为key是一个字符串
}

typeof 的BUG

1
2
1.typeof null // 'object'
typeof fn // ' function'
0%