6 - 对象(Object)

JS中数据类型

String 字符串

Number 数值

Boolean 布尔值

Null 空值

Undefined 未定义

以上五种属于基本数据类型,以后看到的值只要不是上面这5种全都是对象.

基本数据类型的特点

基本数据类型都是单一的值,值和值之间没有任何的联系

在JS种来表示一个人的基本信息(name gemder age)

var name = "张";

var gender = "男"  

var age = 18;

如果使用基本数据类型的数据,我们所创建的变量都是独立的,不能成为一个整体

对象: 

复杂的数据,一个变量中存储多个数据

对象的分类

内建对象

由ES标准中定义的对象,在任何的ES的实现中都可以使用

比如:Math String Number Boolean Function Object...

宿主对象

由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象

比如: BOM DOM 

自定义对象

由开发人员自己创建的对象

定义:

var obj = new Object( )

var obj = { }

定义有数据的对象

var obj {

          key1:value1,

          key2:value2,

          key3:value3

}

创建对象

使用new关键字调用的函数,是构造函数constructor

        构造函数时专门用来创建对象的函数

使用typeof检查一个对象时,会返回object

var obj = new Object();

console.log(obj)  //  [object Object]

设置数据:

在对象中保存的值称为属性,向对象中添加属性

对象.属性名 = 值

对象['属性名'] = 值

obj.name = "张";

obj.gender = "男";

obj.age = 18

对象中的键其实都是字符串,我们在定义对象的时候为了方便,可以省略引号

如果使用一个变量代表对象的键,就必须使用 [] 语法,因为  .  的语法有歧义

对象中的键是唯一的

获取对象中的数据:

obj.键

obj['键']

修改对象的属性值

obj.属性名 = 新值

删除语法:

delete 对象.键

delete 对象['键']

向对象中添加属性

obj.name = "孙悟空"

对象的属性值可以是任何的数据类型,也可以是个函数

调方法和掉函数只是名称上的区分,本质上没有区别

obj.sayName = function(){
        console.log(obj.name)

};

//  调方法

obj.sayName()  //孙悟空

// 调函数

fun()

函数也可以称之为对象的属性

如果一个函数作为一个对象的属性保存

那么我们称这个函数是这个对象的方法

调用这个函数就说调用对象的方法(method)

对象字面量

使用字面量来创建一个对象

var obj = {}

使用对象字面量,可以在创建对象时,直接指定对象中的属性

语法:

var obj {

          key1:value1,

          key2:value2,

          key3:value3

}

对象的遍历:

对象遍历 : 访问对象中每一个键值对

语法:

for(var 变量 in 对象) {

    变量 - 每一个对象中的属性名

}

将对象转成字符串

定义一个容器   var str = '  '

var s = ' '

for(var key obj)   {

str = str + s + key + '=' + obj[key]  

s = '&'

}

console.log(str);

统计每个字符串出现的个数

<script>
    var str = 'abaabcdd'
    var obj = {}
    for (var s = 0; s < str.length; s++) {
        console.log(str[s]); // 字符串中每个字符
        // 将每个字符都作为对象的属性
        if (obj[str[s]] >= 1) {
            obj[str[s]] = obj[str[s]] + 1
        } else {
            obj[str[s]] = 1
        }
    }
    console.log(obj);
</script>

in运算符

通过该运算符可以检查一个对象中是否含有指定的属性

如果有则返回true,没有则返回false 

语法: 

"属性名" in 对象 

例:

        console.log("test" in obj)   //false

数据类型

基本数据类型

String Number Boolean Null Undefined

引用数据类型

Object

栈和堆

JS中的变量都是保存到栈内存中存储

        基本数据类型的值直接在栈内存中存储

        值与值之间是独立存在的,修改一个变量不会影响到其他的变量

        引用数据类型的值是保存到堆内存中的,每创建一个新的对象,就会在内存中开辟出一个新的空间,而变量保存的是对象的内存地址(对象的引用,如果两个变量保存的是同一个对象引用,当一个变量修改属性时,另一个也会受到影响

当比较两个基本数据类型的值时,就是比较值

而比较两个引用数据类型时.它是比较低的对象的内存地址.  如果两个对象是一摸一样的,但是地址不同,它也会返回false

枚举对象中的属性

枚举对象中的属性

使用for...in 语句

语法:

        for (var 变量 in 对象){

}

var obj = {
        name:"孙悟空"

        age:18

        gender:"男"

        adress:"花果山"
}

for (var n in obj){
        // console.log(n)  // n是属性名

        console.log(obj[n]) //[ ] 可以传变量
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值