7种数据类型
数字、字符串、布尔、symbol(符号)、null、undefined、对象
number,string,boolean,symbol,null,undefined,
object(array,function)
number
十进制:
1, .1, 1.23e2
二进制:
0b11
八进制:
011
十六进制:
0X11
string
'你好'
"你好"
''空字符串:0
' '空格字符串:1
转义 \转义符
var n = '\n' 回车
var t = '\t' tab
var b = '\' \符号
多行字符串(不是字符串有回车)
var s = ' 12345
67890' 可行
var s = '12345
67890' 报错
var s2 = '12345' +
'67890'
ES6写法:var s4 =12345 67890
布尔 boolean
true/false
真/假
&&与 ||或
symbol :
symbol
null类型 一个值 null
undefined 类型 一个值 undefined
什么也没有
BUG
1.变量没有值---undefined
2.有一个对象object 现在不想赋值 null var obj = null
有一个非对象 不想赋值 undefined var n
惯例
object 哈希表 复杂类型
var person = {
'name':'along',
'age': 18,
'gender':'male'
self: person
}
键名不加引号,要严格遵守标识符规则,否则9a,a b 错误
person.self.self.self.self.name???
person['name'] 引号不能删
= person.name
delete person['name'] 删除键
person.name //undefined
'name' in person //false
遍历对象
for (var key in person){
console.log(person[key])
}
判断数据类型
string number boolean symbol unde null object
typeof 后
‘string’,‘number’,'boolean','symbol','unde' ,#'object', 'object'
特殊情况: 1.typeof null // ‘object’
2.typeof fn // 'function'
错误的问题:
关于 JS 字符串,正确的是
JavaScript引擎不能自动识别编号大于0xFFFF的Unicode字符
JS允许在程序中使用Unicode编号表示字符,写成\uxxxx的形式
'\u00A9' 表示 "©"
var f\u006F\u006F 是合法的
"".length 为 2 是因为 "" 是两个字符(错,单个字符但是length为2)
2.我想知道变量 a 是否已经声明过(值为 undefined 不代表没有声明过),应该用什么代码
if ('a' in window) { ... }
3.我想知道一个对象有哪些 key,应该用什么 API
Object.keys