【JavaScript】js数据类型那些事儿

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/AC_greener/article/details/84553946

基本类型:number string boolean null undefined symbol


复杂类型(引用类型),由基本类型组成,object

看一个例子:
var name  = 'zhangsan'
var age = 18
var sex = 'male'
这是三个基本类型,但三个变量之间有一些关系,这个时候就可以用一个对象表示:
var person = {
	 name  = 'zhangsan',
	 age = 18,
	 sex = 'male'
}

那么如何拿到person的name或者其他属性呢?

第一种:
person['name']   //'zhangsan'
注意:
person[name]  这种用法是错误的,这样用的话这个name就是变量,除非你定义name:
var name = 'name'
person[name]

第二种:以为着.后面跟的是字符串
person.name  // 'zhangsan'

那么问题来了,什么时候可以使用person.name 这种方法呢???

当这个name不加引号且符合变量标识符的规范时,才可以用这个方法,看下面的例子:

var person = {
	a1: 'hello',
}
a1符合变量标识符的规范,上面两种方法都可以使用,接着看
如果我要定义一个以数字开头的属性呢?
var person = {
	a1: 'hello',
	2a: 'world'
}
浏览器会报错,正确方法是这样的:
var person = {
	a1: 'hello',
	'2a': 'world',
	'x y': '大皮鞋'
}
此时就可以用
person['2a'], person['x y']去访问里面的值,而不能用:
person.2a

看一个题目:

obj = {
	'name': 'zhangsan',
	'age': 10
}
for(var key in obj) {
	cosnole.log(obj.key)
}

cosnole.log(obj.key)  这种写法很明显是错误的,obj.key就相当于obj['key'],key是一个字符串!!!
应该写:
cosnole.log(obj[key]),这个时候key代表的才是变量

null和undefined的区别,如何使用呢?

var a 
console.log(a)   //undefined

如果定义变量但没有值,就是undefined

有一个对象obj,但是现在不想给他赋值,那么就该赋值为null, var obj = null,就表示为空对象

typeof操作符

类型 string number boolean undefined object
typeof结果 ‘string’ ‘number’ ‘boolean’ ‘undefined’ ‘object’

但是typeof运算符有两个bug:

typeof null === 'object'

function fn(){
}
typeof fn === "function"

猜你喜欢

转载自blog.csdn.net/AC_greener/article/details/84553946