对象

118 阅读2分钟

基本数据类型和引用数据类型

基本数据类型:string ,number,boolean,undefined,null,存放到栈里面

引用数据类型:通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date,存放到堆里面

image.png

  简单数据类型存储的是值
        let num1 = 10
        let num2 = num1
        num2 = 20
        console.log(num1)

  对象 引用数据类型    栈里面存储的是地址

        let obj1 = {
            age: 18
        }
        let obj2 = obj1
        obj2.age = 20
        // console.log(obj1, obj2)
        console.log(obj1)   // 20 

数学内置对象

  数学内置对象:
        console.log(Math.PI)  //  圆周率    π  
        console.log(Math.random())  //  随机数  随机抽奖  随机点名
        // 返回的是小数  但是能得到 0  得不到 1
        
        
        // 向上取整  返回的整数
        console.log(Math.ceil(1.1))  // ceil  2
        console.log(Math.ceil(1.5))  // ceil  2
        
        // 向下取整  返回的整数  floor  
        console.log(Math.floor(1.1))  // floor  1
        console.log(Math.floor(1.5))  // floor  1
        
        // round 四舍五入  返回的整数   
        console.log(Math.round(1.1))  // round  1
        console.log(Math.round(1.5))  // round  2
        console.log(Math.round(-1.9))  // round  -2

        // 最大值和最小值
        console.log(Math.max(1, 5, 9, 45))
        console.log(Math.min(1, 5, 9, 45))
        
   ceil   向上取整   console.log(Math.ceil(1.3));   结果是2
   floor  向下取整   console.log(Math.floor(2.3));    结果是1
   max    找最大值   console.log(Math.max(10, 30, 200, 50));  结果是200
   min    找最小值   console.log(Math.min(10, -30, 100, 50)); 结果是-30
   pow    幂运算     不常用
   abs    绝对值     不常用

随机数函数

   //第一步:随机数
        function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min
        }
        
   // 第二步:声明一个数组
        let arr = ['赵云', '黄忠', '关羽', '张飞', '马超', '刘备', '曹操']

   // 第三步:生成1个随机数 作为数组的索引号
        let random = getRandom(0, arr.length - 1)
        // console.log(random)
        document.write(arr[random])

   // 第四步:之后删除这个 人的名字
   // arr.splice(从哪里开始删, 删几个)
        arr.splice(random, 1)
        console.log(arr)

遍历对象

作用:能够遍历输出对象里面的元素

遍历对象案例:
   let person = {

            name: '李狗蛋',

            age: 18,

            sex: '男'

        }
        
        
   for (let key in person) {

         console.log(key);           //打印的是属性名:name age sex

         console.log(person[key]);      //打印的是属性值‘李狗蛋’‘18’‘男’  没有引号

         console.log(person['key']);    //错误写法,这样会直接去对象里面找key的属性的值,没有找到则是undefine

        }

操作对象


  let person = {
            name: '李狗蛋',
            age: 18
        }

        // 查:直接对象.属性即可
        console.log(person.name);
        // 改: 对象.属性 = 值   如果对象中没有设置的属性则会新增一个属性
        person.sex = '男'
        console.log(person);

        // 增: 对象.属性 = 值   如果对象中有对应的属性则会更新属性值
        person.age = 19
        console.log(person);

        // 删: delete 对象.属性
        delete person.name
        console.log(person);