本博文源于js基础,主要讲述对象与基本和引用类型值。
对象
初识对象
对象是一种非常常见的数据结构,它由不定量的属性和属性值,应该可以描述为键值对的东西。
这个跟python里面的内容也有类似。
var obj = {
a:1,
b:2,
c:3
};
访问对象的属性
obj.a;
obj["a"];
感觉第一种用起来跟java类似。其中
var key = "c";
console.log(obj[key]);//obj是上面的定义内容
方括号表示法不能变成点表示法,比如这种
console.log(obj.key);
由于obj没有“key”属性,所以得到undefined值。
对象的优点
对象给变量增加了整体性
将键值和属性捆绑在了一起。
对象给数组增加了属性名
数组只有一个数组值,而对象有键值对,就可以看作键值相当于数组值,属性值是数组额外的东西。
对象给变量增加了命名空间
如果描述张三家和李四家的养羊的个数,可以这样写
var Sheep_all {
zhangsan:9,
lisi:10
}
同样这可以改写为
var zhangsan = 9;
var lisi = 10;
如果再需要我们描述养牛种数,那就需要用到
var zhangsan_ox = 8;
var lisi_ox = 3;
如果有了对象那肯定就简单了,
var Ox_all {
zhangsan:8,
list:3
}
对象Sheep_all和Ox_all给属性名增加了“点前缀”,术语叫做“命名空间”,即zhangsan,lisi等处于不同的命名空间。
JSON
JSON(JavaScript Object Notation即JavaScript对象表示法)是一种跨语言、用于信息交换的数据格式。它本质上是语法更为严格的js对象。因为它主要支撑数据交互的,因此学js的时候可以先跳过,后期再专门学这个。
但JSON对于语法有明确要求:
- 属性名都必须严格地用双引号包裹。
- 属性名都必须符合标识符命名规范。
例如:
var obj = {
"a":1,
"b":2
};
复杂对象
对象里面套对象,问题一下子复杂了,对象里更复杂类型的值。例如
var theStudent = {
name:"小池",
age:25,
sex:"女",
pets: [
{
name:"笨笨",
type:"dog"
},
{
name:"小花",
type:"cat"
}
]
};
对象的遍历
可用for循环进行遍历
var theUser = {
name:"聂超",
age: 38,
height:172
};
for(var k in theUser) {
console.log(k,theUser[k]);
}
方法
如果一个对象的某个属性值是函数,则称此属性是这个对象的“方法”,对象可以调用这个函数。例如:
var theUser = {
name:"聂超",
age: 38,
height:172,
sing:function() {
console.log("啦啦啦");
}
};
theUser.sing();
基本类型值
Js中值分为基本类型值和引用类型值两种类型,先谈一下基本类型。
基本类型一共有四种,数值、字符串、布尔、undefined。
它们主要特点如下:
- 变量指向的是内存中的“值”,当进行变量赋值的传递时(如var b = a;)时,变量的值会被复制一份给一个变量,两个变量完全分开。
- 做相等判断时,不比较它们是否是内存中的同一个地址,而只比较值是否相等。
引用类型值
包括对象和数组,内存中不产生新的副本,而是让新变量指向同一个对象。