dayy05 对象

对象

什么是对象

  • 对象(object):JavaScript里的一种【数据类型
  • 可以理解为是一种【无序】的数据集合
  • 用来描述某个事物,例如描述一个人(可以用来装一个事物具体属性,表示这些属性都于这个事物有联系)

对象使用

对象组成

属性+方法(方法也属于对象的属性,不过是为了条例清晰具体化了出来)

image-20220421112328368

注意事项

  • 属性名可以使用 "" 或 ''(字符串),一般情况下省略,除非名称遇到特殊符号如空格、中横线等
 let person = {
            uname: '张飞',
            age:'2000',
            sex:'男',
            userWord: function (){
                console.log('俺也是!!');
            },
     		//属性名是字符串,不遵循变量命名规则
            "is a wujiang":function(){
                console.log('武将');
            }
        }
  • 多个属性之间使用英文 , 分隔
  • 属性就是依附在对象上的变量(外面是变量,对象内是属性)

操作对象

属性访问

let person = {
            uname: '张飞',
            age:'2000',
            sex:'男',
    		//匿名函数
            userWord: function (){
                console.log('俺也是!!');
            },
            "new-pro": 'mate10'
        }

​ 写法一:console.log(person.sex);

​ 写法二:console.log(goods["new-pro"]);

​ 调用函数:person.userWord();

注意事项

​ 1.如果使用变量,应该给变量赋值为属性字符串形式
​ 2.使用点名法的时候,属性名不能使用字符串

image-20220421122942152

重新赋值

let goods = {
            name : '小米10',
            num: 'N02155',
            weigh: '0.53kg',
            address: '中国',
            "new-pro": 'mate10',
            userWord: function (){
                console.log('专为发烧而生');
            },
            "is a logo":function(){
                console.log('花钱改圆角');
            }
        }

方法一(点方法):

​ 给属性改值:goods.name = '小米丧尸版';

​ 给方法改值:

goods.userWord = function (){
 //这里不能再加()了
            console.log('一代更比一代强,专为发烧而生');
        }

方法二(括号方法):

给属性改值:goods['new-pro'] = 'pro10';

给方法改值:

goods['is a logo'] =function(){
            console.log('花钱改圆角,200万'); 
        }
        console.log(goods['is a logo']);

增加属性

注意事项

  • 无论是属性或是方法,同一个对象中出现名称一样的,后面的会覆盖前面的

  • 必须在对象中不存在过才能进行重新赋值,否则即是改值

方法一:

​ 给属性增值:goods.list = '骁龙系列';

​ 给方法增值:

        goods.tech = function (){
            console.log('空间音频,无线聆听新高度,为深度沉浸感而来');
        }
        goods.tech()  

方法二:

​ 给属性增值:goods['specify'] = '三麦克风AI通话降噪';

​ 给方法增值:

        goods['is a music'] = function(){
            console.log('天籁之音,带你身临其境');
        }
        console.log(goods['is a music']);

删除属性

​ 注意点:

删除后有返回值,返回值是布尔类型,删除成功就是true,删除失败就是false

遍历对象

使用语句

for in

​ 一定记住: 【key】 是获得对象的属性名,【 对象名[key] 】是获得属性值

let obj ={
	uname:'andy';
	age:18,
	sex:'man'
}
for(let key in obj){ 
    //key可以改名任何其他的字母,但一般使用key指代键值对
	console.log(key)//打印出属性名(获得对象属性是 key)
	console.log(obj[k]) //打印出属性值(获得对象值是obj[key])
}

遍历对象

注意事项:

​ 1、

内置对象

内置对象Math

​ Math对象是JavaScript提供的一个“数学高手”对象,提供了一系列做数学运算的方法

let num = Math.random();
        console.log(num);

​ 提供的部分方法:

  • random:生成0-1之间的随机数(包含0不包括1,也就是无线趋近于1)
//向上取整
        num = Math.ceil(num);
        console.log("ceil:",num);
  • ceil:向上取整
let num1 = Math.random()*10;
        num1 = Math.ceil(num1);
        console.log("小数点后全进位的上取整:",num1);
  • floor:向下取整
let num2 = Math.random()*10;
        num2 = Math.ceil(num2);
        console.log("小数点后全去删的下取整",num2);
  • max:找最大数
// 最大值
        console.log('Math.max(32,5,12,89,45,36,99);: ', Math.max(32,5,12,89,45,36,99))
  • min:找最小数
        let num3 = Math.min(32,5,12,89,45,36,99);
        console.log(num3);

综合案例

image-20220422104503490

拓展

堆栈空间

堆(操作系统)

基本数据类型

​ =简单数据类型=值类型

​ 不可拆分的(string 、 number 、 Boolean等)

存放位置

​ 简单数据类型存放到栈里面

内存分配

​ 访问一个变量:usrAge

  1. 找到变量指向的栈地址
  2. 获取栈地址,对应的数据

image-20220422120930734

image-20220422123155964

引用数据类型

​ =复杂数据类型

Object、Array、function

存放位置

​ 引用数据类型存放到堆里面

内存分配

​ 访问usrObj

  1. 获取变量栈地址
  2. 获取栈地址,对应的数据(数据存的是堆中的一个地址)
  3. 根据这个堆地址,去堆内存中,找到真正的数据

image-20220422120907574

image-20220422123448301

可以理解为共用一个对象

拓展

Var

注意点:

  • ​ var存在变量提升,但只是提升了声明的部分,若有var num = 1,就只提升var num;

  • ​ 写在script的var存在于作用域链的Global(即window),但let的好处就是它在哪声明在哪起作用:写在script的let就存在与作用域链的script

image-20220422152542443

image-20220422152719915

  • ​ var没有作用域这一概念,只要设置了,就都是全局的人,包括声明在块作用域的变量

image-20220422152836286

image-20220422152719915

const

常量:不能被修改,修改就报错

switch case

image-20220422154510111

forEach

        // 专门给数组遍历的
        let arr =[454,45456,84878,878];
        arr.forEach(function(value,index){
            console.log(value);
            console.log(index);
            console.log('-----------------');
        })
posted @ 2022-04-23 13:17  莐亓  阅读(33)  评论(0)    收藏  举报