基本类型(简单类型)
-
七种数据类型
1. 数值(数字)number
2. 字符串 string
3. 布尔 boolean
4. 符号 symbol
5. null
6. undefined
7. 对象 Object
**************************
js一切都是对象是错误的 除了对象还有其他6种
**************************
没有array(数组) function这种类型,他们都属于Object。所以说出了上边的6种其他都是对象。
-
数字 number
-
十进制
1 or 1.1 (.1)
1.23e2 1.2310的平方(科学计数法)*
-
二进制
0b开头
0b1 就是1
0b2 就是2
-
八进制
0开头 比如011
电话号码存储不能用八进制 要用字符串
-
十六进制
0x开头 比如0x11
-
字符串 string
// 可以是单引号/双引号,也可以是空的字符串(空字符串和空格字符串不一样,空字符串长度是0,空格字符串长度是1)
'你好'
"你好"
""
''
' '
" "
var a = ' ' ' or '' '' ''' //错误
var a = " ' " or ' " ' === ' \' ' or " \" " //正确
var a = ' \n ' //回车
var a = ' \t ' //Tab
var a = ' \\ ' //表示 \
长度都为1
……
image.png
//多行是换行输入不是回车,可以用 \ 连接,也可以用 + 连接
var a = ' 123456
23465 ' //报错
var a = ' 123546 \
12345 ' //正确
var a = ' 123546' +
'12345 ' //正确 (推荐)
***************************************
//ES6语法表示多行字符串用反引号,数字1左边的符号 " '~ "
var a = `123546 +
12345 ' // 中间有空格
a.length = 12
image.png
-
布尔(boolean) 一个数学家的名字
boolean 的两个值:true(真) false(假)
a&&b ---ab同时为真/假则为真/假 (与)
a||b ---ab一方为真则为真 两个都为假则为假 (或)
-
null 和 undefined(类型)
//null 和 undefined都表示什么也没有
null 值为: 'null'
undefined 值为:'undefined'
//不同之处 null一般表示空对象,undefined一般表示空非对象
1. 变量没有赋值 -- undefined //语法
//惯例
2. 一个对象Object,不想赋值 --可以设置为null ( var Object = null)
3. 有一个非对象,不想赋值 -- undefined ( var n)即可
image.png
复杂类型
对象 Object(对象就是简单类型的组合)
var person = {
name = " xxx" ----name和age默认会变成字符串
age = 18
}
image.png
-
使用
如果key
为遵循标识符取的 可以不加引号,自动转为字符串,否则必须加上引号!
对象的key
---现实使用中一般不加引号 要遵循标识符规则,加引号一般没什么限制
数组的key可以为:a9 = 'xxx'
对象的key设置建议加上引号
var obj = {
'a9' = 'xxx'
}
不如对象key为 a空格b,不加引号会报错
*********************
//声明
var person = {
name = " xxx"
age = 18
}
//取值
person['name'] // xxx
person['age'] // 18
***********************************************
//对象的key可以是空字符串
var person = {
'' = 'xxx'
}
person[''] --//xxx
对象中可以包含对象 (?包含自己?)黑人问号
-
删除key:value
用delete
删除一个key
,key
和value
都删除了,如果key=undefined
,只表示删除了value
,key
还是存在的。
var a = { name:'xxx'}
delete a['name']
a['name'] //undefined
'name' in a // false
********************************
var a = { name:'xxx'}
a.name = undefined
a['name'] //undefined
'name' in a // true
image.png
//打印key
var person = { name: 'xxx',age: 18}
for(var key in person){
conlole.log(key)
// name
age
}
//打印value
var person = { name: 'xxx',age: 18}
for(var key in person){
conlole.log(person[key])
// xxx
18
}
//打印key:value
var person = { name: 'xxx',age: 18}
for(var key in person){
conlole.log(key,person[key])
// name:xxx
age:18
}
-
查询变量类型 typeof
变量类型是一个名词 必须是一个字符串
var t = 1
typeof t // 'number'
var t = 'fffff'
typeof t // 'string'
var t = false
typeof t // 'boolean'
var t = undefined
typeof t // 'undefined'
1. typeof null 理论上会返回'null' 实际返回'object'
2. typeof function(函数) 理论上会返回'object' 实际返回'function'
2个bug
网友评论