JavaScript 对象;Math常用方法

90 阅读2分钟

JavaScript 对象;Math常用方法

简介

对象是一种数据类型,可以详细的描述描述某个事物
属性都是成 对出现的,包括属性名和值,它们之间使用英文 : 分隔
多个属性之间使用英文 , 分隔
属性就是依附在对象上的变量(外面是变量,对象内是属性)
属性名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等

image.png

            //声明对象语法  let 对象名={}
        let goods = {
            //属性名  信息或叫特征(名词) :属性值
            name: '保时捷',
            num: '1',
            weight: '2t',
            address: '德国',

            'shou jia': '一百万',

            //方法名:功能或叫行为(动词) 方法名:函数
            soup: function () {
                console.log('1000匹');
            }
        }
        //打印调用对象方法
        console.log(goods);
        console.log(goods.name);   
        console.log(goods['address']);
        goods.soup();   //可直接选中调用对象中的函数
        console.log(goods['shou jia']);
        // []的方式进行属性访问  对象名['属性名']   对象名[变量]  []里面如果不加''会被当成变量

操作对象;增 删 改 查

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

        // 查:直接对象.属性即可
        console.log(person.name);
        console.log(person['age']);

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

        // 增: 对象.方法 = 匿名函数 也可以动态为对象添加方法,语法更加灵活
        person.sayHi = function () {
            console.log('大家好~请多多关照');
        }
        console.log(person);
        person.sayHi()

        // 改: 对象.属性 = 值   如果对象中有对应的属性则会更新属性值
        person.name = '张翠花'
        console.log(person);

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

遍历对象

    <script>
        let person = {
            name: '李狗蛋',
            age: 18,
            sex: '男'
        }

        // 利用 for in 遍历对象 key 代表属性名  
        for (let key in person) {
            console.log(key);
            // 在遍历对象的时候不能用 对象名.key的这种方式获取对象中的属性值

            console.log(person.key);  // 当前遍历的属性名

            console.log(person[key]);// 当前遍历的属性值
        }

    </script>

数组练习

    <script>
        // 数组 里面可以放任何的数据类型
        let arr = ['123', 999, [1, 2, 3, 4], true, null, undefined, { a: 1 }]
        console.log(arr[2][3]);  //打印4
        console.log(arr[6].a);  //打印1
        console.log(arr[6]['a']);  //打印1

        // 数组对象
        let students = [
            { name: '李狗蛋', age: 18, gender: '男', hometown: '广东省' },
            { name: '张翠花', age: 19, gender: '女', hometown: '四川省' },
            { name: '赵铁柱', age: 17, gender: '男', hometown: '广西省' },
            { name: '钱多多', age: 18, gender: '女', hometown: '湖南省' }
        ]

        console.log(students[2].name);  //打印为数组索引第二项的对象名
    </script>

内置对象Math 常用方法

        // Math.random() 求从0 - 1 的随机数(包括0 不包括1)
        console.log(Math.random() * 3); // 0 - 1 的随机数 * 3

        // Math.ceil() 向上取整
        console.log(Math.ceil(1.1));  //得出为2
        console.log(Math.ceil(2.7));  //得出为3
        console.log(Math.ceil(3.3));  //得出为4

        // Math.floor() 向下取整
        console.log(Math.floor(1.1));  //得出为1
        console.log(Math.floor(2.7));  //得出为2
        console.log(Math.floor(3.3));  //得出为3

        // Math.max() 求最大值
        console.log(Math.max(22, 33, 44, 1, 99));  //得出为99

        // Math.min() 求最小值
        console.log(Math.min(22, 33, 44, 1, 99));  //得出为1

封装随机数函数点名案例

    <script>
        // 封装随机数函数
        function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min
        }

        // 声明一个数组
        let arr = ['赵云', '黄忠', '关羽', '张飞', '马超', '刘备', '曹操']

        // 生成1个随机数 作为数组的索引号并 输出索引对应元素
        let num = getRandom(0, arr.length - 1)
        document.write(arr[num])

	    // 不允许重复出现之后删除这个 人的名字
        // arr.splice(从哪里开始删, 删几个)
        arr.splice(random, 1)
        console.log(arr)
    </script>

猜数字游戏案例

    //求最大到最小值随机数公式
	function getRandom(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min
    }
    <script>
        // 随机数
        function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min
        }
        // 声明一个当前游戏的数字答案
        let res = getRandom(1, 100)

        // 声明变量条件让while开始循环 如果是错的 就继续执行循环
        let isWrong = true

        while (isWrong) {
            let num = +prompt('请您输入数字')//此时用户输入的数字为true

            // 判断 分支-> num > res ->您输入的数字太大了  num < res ->您输入的数字太小了
            // num === res 您猜对了可真聪明,跳出循环break; isWrong = false
            if (num > res) {
                alert('您输入的数字太大了,再来一次吧')
            } else if (num < res) {
                alert('您输入的数字太小了,再来一次吧')
            } else if (num === res) {
                alert('您猜对了可真聪明')
                // 退出循环
                break
                // isWrong = false
            }
        }
    </script>

堆栈空间分配区别

简单数据类型存放到栈里面 number string boolean undefined null
引用数据类型存放到堆里面 object 对象 function 函数 array 数组