JS-基础-对象

创建对象的三种方式:

1.利用字面量创建对象

1.1创建

🅰
var 对象名 = {
属性:属性值,
方法:function(){。。}
}
注意:符号
是逗号,不是分号
冒号与等号

var star = {
    name : 'pink',
    age : 18,
    sex : '男',
    sayHi : function(){
        alert('大家好啊~');
    }
};

1.2 使用

🅱
对象 . 属性
对象 [ ’ 属性 ’ ] // 有则为属性值 无则为 false
对象 . 方法名();

console.log(star.name)     // 调用名字属性
console.log(star['name'])  // 调用名字属性
star.sayHi();              // 调用 sayHi 方法,注意,一定不要忘记带后面的括号

2.利用 new Object 创建对象

2.1 创建

🅰
var 对象名 = new Object();
对象名 . 属性名 = 属性值 ;
对象名 . 方法名 = function(){}

// 创建空对象
var andy = new Object();  
// 给空对象添加属性和方法
andy.name = 'pink';
andy.age = 18;
andy.sex = '男';
andy.sayHi = function(){
    alert('大家好啊~');
}

2.2 使用

🅱
对象.属性 = 值;

3.利用构造函数创建对象

3.1构造函数

🅰 封装

function 构造函数名(形参1,形参2,形参3) {
     this.属性名1 = 参数1;
     this.属性名2 = 参数2;
     this.属性名3 = 参数3;
     this.方法名 = 函数体;
}

3.2 构造函数的调用格式

🅱

var obj = new 构造函数名(实参1,实参2,实参3)  // obj 是一个对象

遍历对象 for …in

for…in语句以任意顺序遍历一个对象的除Symbol以外的可枚举属性。

in : 如果指定的属性在指定的对象或其原型链中,则in 运算符返回true。

  • variable
    在每次迭代时,variable会被赋值为不同的属性名。
  • object
    非Symbol类型的可枚举属性被迭代的对象。
for (variable in object){
     //执行
}
for (var k in obj){
	console.log(k);  //输出的是  属性名
	console.log(obj[k]); //输出的是 属性值
}

案例

有一个对象 来判断是否有该属性
// 有一个对象 来判断是否有该属性 对象['属性名']
var o = {
    age: 18
}
if (o['sex']) {    //访问对象的属性的一种调用方式:对象名['属性名']
    console.log('里面有该属性');

} else {
    console.log('没有该属性');

}
判断一个字符串 ‘abcoefoxyozzopp’ 中出现次数最多的字符,并统计其次数。
//  判断一个字符串 'abcoefoxyozzopp' 中出现次数最多的字符,并统计其次数。
// o.a = 1
// o.b = 1
// o.c = 1
// o.o = 4
// 核心算法:利用 charAt() 遍历这个字符串
// 把每个字符都存储给对象, 如果对象没有该属性,就为1,如果存在了就 +1
// 遍历对象,得到最大值和该字符
var str = 'abcoefoxyozzopp';var o = {};    //使用对象来存储每个字符  💛
for (var i = 0; i < str.length; i++) {
    var chars = str.charAt(i); // chars 是 字符串的每一个字符💛
    if (o[chars]) { // o[chars] 得到的是属性值💛   对象[属性名] = 属性值
        o[chars]++;
    } else {
        o[chars] = 1;
    }
}
console.log(o);   //a: 1、b: 1、c: 1、o: 4、e: 1、f: 1、x: 1、y: 1、z: 2、p: 2
// 2. 遍历对象❣
var max = 0;
var ch = '';
// for...in语句以任意顺序遍历一个对象的除Symbol以外的可枚举属性。
for (var k in o) {   //💛如果指定的属性在指定的对象或其原型链中,则in 运算符返回true。
    // k 得到是 属性名
    // o[k] 得到的是属性值
    if (o[k] > max) {
        max = o[k];
        ch = k;
    }
}
console.log(max);
console.log('最多的字符是' + ch);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值