JavaScript --- 对象的种类及属性

JavaScript — 对象的种类及属性

一、创建对象的方法

1.调用系统的构造函数来创建对象

script>
    //1.调用系统的构造函数来创建对象
    // var obj = new Object();
    // console.log(obj);

    var zhanZhan = new Object();
    // 对象有特征和行为
    // 特征相当于属性,添加/设置属性   ---   对象.属性名 = 值;
    zhanZhan.height = "183cm";
    zhanZhan.name = "肖战";
    zhanZhan.birth = "1991.10.05";
    // 行为相当于方法,添加方法   ---   对象.方法名 = 匿名函数;
    zhanZhan.look = function() {
        console.log("看电影");
    }
    // 输出对象的属性
    console.log(zhanZhan.name);
    // 方法的调用
    zhanZhan.look();
</script>

2.自定义构造函数创建对象(结合通过工厂模式创建对象)

<script>
    //  2.自定义构造函数创建对象
    // 函数和构造函数的区别:构造函数的名字首字母大写

    //1.创建一个构造函数
    function Person(name,age,sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.saiHi = function() {
            console.log("hello world");
        }
    }

    //2.实例化对象
    var MoYang = new Person("moyang","16","男");
    MoYang.saiHi();
</script>

3.以字面量的方式创建对象

<script>
    //3.以字面量的形式创建对象

    var moyang = {};
    moyang.name = "小明";
    moyang.age = "16";
    moyang.sex = "男";
    moyang.eat = function () {
        console.log("吃火锅");
    }

    //优化
    var goudan = {
        name:"小华",
        age:"16岁",
        eat:function () {
            console.log("喝奶茶");
        }
    };
    goudan.name = "小明";
    goudan.sex = "男";
    console.log(goudan);
    goudan.eat();

    //设置属性和方法的另一种写法
    //goudan.age = 3;
    goudan["age"] = 18;
</script>

二、对象的种类及属性

1.Math对象

<script>
    /*
    * 实例对象:通过构造函数创建出来的对象
    * 静态对象:不需要创建,直接就是一个对象,方法/属性可以直接通过这个方法调用
    *
    * Math对象---静态对象
    * ① Math.PI 圆周率
    * ② Math.floor(值) 向下取整
    * ③ Math.ceil(值) 向上取整
    * ④ Math.abs(值) 绝对值
    * ⑤ Math.round(值) 四舍五入,正数四舍五入,负数尽量避免(五舍六入,或略-号)
    * ⑥ Math.max(多个值,逗号隔开) 一串数字的最大值
    * ⑦ Math.min(多个值,逗号隔开) 一串数字的最小值
    * ⑧ Math.pow(a, b) a的b次方
    * ⑨ Math.sqrt(值) 开平方
    * ⑩ Math.random() 取随机数,区间0-1
    *
    * */

    console.log(Math.PI);//3.1415926
    console.log(Math.floor(-3.9));//-4
    console.log(parseInt(3.9));//省略小数点后面的值  3
    console.log(Math.ceil(-2.6));//-2
    console.log(Math.abs(-10));//10
    console.log(Math.round(-3.6));//-4
    console.log(Math.max(1, 4, 5, 6, 7, 8, 3, 5, 4, 9));//9
    console.log(Math.min(5, 4, 3, 7, 89, 9, 7, 1));//1
    console.log(Math.pow(2, 4));//16
    console.log(Math.sqrt(9));//3
    console.log(Math.random());//0~1随机数

    //求0~4的随机整数
    console.log(Math.floor(Math.random() * 4));
</script>

2.Date对象

<script>
    //创建指定的时间
    var dt = new Date("2222-02-22 22:22:22");//Fri Feb 22 2222 22:22:22
    //console.log(dt);

    //创建实例对象
    //当前时间
    //var dt2 = new Date();//Fri Feb 22 2222 22:22:22

    //获取毫秒 1s == 1000ms
    console.log(dt.getTime());//7956886942000--- 从1970年-01-01 00:00:00开始计算

    //获取年份
    console.log(dt.getFullYear());//2222
    //获取月份 国外的时间是从0开始的  0-11
    console.log(dt.getMonth() + 1);
    //获取日期
    console.log(dt.getDate());
    //获取星期     0-日 1-一 2-二 3-三 4-四 5-五 6-六
    console.log(dt.getDay());
    //获取时分秒
    console.log(dt.getHours());
    console.log(dt.getMinutes());
    console.log(dt.getSeconds());

    //英文日期----Fri Feb  22  2222
    console.log(dt.toDateString());
    //本机的数据格式的日期---2222/2/22
    console.log(dt.toLocaleDateString());
    //时分秒---22:22:22  GMT+0800(中国标准时间)
    console.log(dt.toTimeString());
    //下午10:22:22
    console.log(dt.toLocaleTimeString());
</script>

3.String对象

<script>
    // String:字符串对象

    var str = "萨瓦迪卡~";
    console.log(str.length);
    // 字符串可以看成是多个字符组成的数组(但是js当中没有字符类型),可以用length属性的,可以通过for循环遍历
    // 特性:不可变性-->字符串的值是不能改变的
    console.log(str[2]);// 可以访问
    str[1] = "wa";
    console.log(str);
    str = "重新赋值";// 重新赋值,不是修改,因为指向改变了并不是真正的值改变
    console.log(str);

    for(var i = 0; i < str.length; i++) {
        console.log(str[i]);
    }

    /*
     * 字符串常用的方法和属性
     * ① .length --- 返回字符串的长度
     * ② .charAt(索引) --- 返回值是指定索引位置的字符串,如果该索引值超出,返回的结果是空字符串
     * ③ .concat(字符串1, 字符串2, ...) --- 返回值是拼接之后的新字符串
     * ④ .indexOf(要找的字符串, 从某个位置开始找的索引) --- 返回值是这个字符串的索引值,没找到就返回-1
     * ⑤ .lastIndexOf(要找的字符串, 从某个位置开始找的索引) --- 从后往前找,但是索引仍然是从左向右,同样找不到返回-1
     * ⑥ .replace("原来的字符串", "新的字符串") --- 用来替换字符串的
     * ⑦ .slice(开始的索引a, 结束的索引b) --- 从索引为a的位置开始截取,到b位置结束,不包含b的位置,包前不包后,返回值是提取后的字符串
     * ⑧ .substr(开始的位置, 截取的个数) --- 用来截取,返回值是截取后的字符串
     * ⑨ .substring(开始的索引a, 结束的索引b) --- 从索引为a的位置开始截取,到b位置结束,不包含b的位置,包前不包后
     * ⑩ .split("要干掉的字符串", [分隔后留下的个数]) --- 用来分隔字符串,返回的是数组形式分隔后的数据
     * ⑪ .trim() --- 去除字符串前后端的后台
     * ⑫ toLowerCase() --- 转小写
     * ⑬ toUpperCase() --- 转大写
     */

    var str1 = "What are you nong sha lei ?"
    console.log(str1.charAt(29));

    var str2 = "What";
    console.log(str2.concat("are", "you", "弄啥嘞?"));

    var str3 = "no zuo no die why you try ?"
    console.log(str3.indexOf("o"));// 不写第二个参数,默认从索引为0的位置开始找
    console.log(str3.indexOf("o", 6));
    console.log(str3.lastIndexOf("o"));// 不写第二个参数,默认从索引为lenrth - 1的位置开始找

    console.log(str3.replace("o", "哈哈"));
    console.log(str3.replace(/o/, "啦啦"));// 正则表达式语法
    console.log(str3.replace(/o/g, "沙沙"));// 全局匹配

    console.log(str3.slice(4, 6));
    console.log(str3.substr(4, 6));
    console.log(str3.substring(4, 6));

    var str4 = " 迪奥|纪梵希|娇兰|古驰|YSL|萝卜丁 ";
    console.log(str4.split("|", 3));
    var arr = str4.split("|");
    for(var i = 0; i < arr.length; i++) {
        console.log(arr[i]);
    }
    console.log(str3.trim());

    console.log(str3.toUpperCase());
</script>

4.Array对象

<script>
    /*
     * Array.isArray(对象名) --- 判断这个对象是不是数组
     * 对象 instanceof 类型
     *
     * ① .concat(数组1, 数组2, ...) --- 组合成一个新的数组
     * ② .push(值) --- 把值追加到数组的末尾,返回值是追加数据之后数组的长度
     * ③ .unshift(值) --- 把值追加到数组的最前面,返回值是追加数据之后数组的长度
     * ④ .pop(值) --- 删除数组的最后一个,返回值是删除的这个值
     * ⑤ .shift(值) --- 删除数组的第一个,返回值是删除的这个值
     * ⑥ .every(函数) --- 返回值是布尔类型,函数当做参数使用,函数中有三个形参:元素的值、元素对应的索引值、要遍历的数组名(可省略)
     * ⑦ .some(函数) --- 返回值是布尔类型,函数当做参数使用,函数中有三个形参:元素的值、元素对应的索引值、要遍历的数组名(可省略)
     * ⑧ .filter(函数) --- 返回值是数组中每一个符合条件的元素,组成一个新的数组,函数中有三个形参:元素的值、元素对应的索引值、要遍历的数组名
     * ⑨ .forEach(函数) --- 遍历数组,相当于for循环,函数中有三个形参:元素的值、元素对应的索引值、要遍历的数组名
     * ⑩ .indexOf(元素值) --- 返回的是元素所对应的索引,找不到返回-1
     * ⑪ .join("字符串") --- 返回的是通过这个字符分隔的字符串
     * ⑫ .reverse() --- 翻转数组
     * ⑬ .slice(开始的索引, 结束的索引) --- 把截取的数组的值放到新的数组,包前不包后
     * ⑭ .sort() --- 排序,不稳定,根据MDN中的固定方法
     * ⑮ .splice(开始的位置, 要删除的个数, 替换元素的值) --- 一般用于删除数组中的某个元素,或者替换元素,或者插入元素
     */

    // 1.判断类型
    var arr = [];
    console.log(arr instanceof Array);
    console.log(Array.isArray(arr));

    var arr1 = [1, 2, 3, 4, 5];
    var arr2 = ["a", "b", "c", "d", "e"];
    console.log(arr1.concat(arr2));

    console.log(arr1.push(100));
    console.log(arr1);
    console.log(arr1.unshift(50));
    console.log(arr1);

    console.log(arr1.pop());
    console.log(arr1);
    console.log(arr1.shift());
    console.log(arr1);

    // 一假即假
    var arr3 = [1000, 2000, 3000, 4000]
    // ① 要遍历的元素
    // ② 元素所对应的索引
    // ③ 要遍历的数组名
    var flag = arr3.every(function(item, index, arr3) {
        console.log(item, index, arr3);
        return item > 2000;
    })
    console.log(flag);

    // 一真即真
    var flag2 = arr3.some(function(item, index, arr3) {
        console.log(item, index, arr3);
        return item > 2000;
    })
    console.log(flag2);

    var newArr = arr3.filter(function(item, index, arr3) {
        return item > 2000;
    })
    console.log(newArr);

    var sum = 0;
    arr3.forEach(function(item, index) {
        sum += item;
    })
    console.log(sum);

    console.log(arr3.join("❀"));

    var arr4 = ["虞姬", "甄姬", "蔡文姬", "妲己"];
    // 在索引为2的位置插入一个“小明” --- 增加
    console.log(arr4.splice(2, 0, "小明"));
    // 删除
    console.log(arr4.splice(4, 1));
    // 替换
    console.log(arr4.splice(3, 1, "凯"));
    console.log(arr4);
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值