第二章 JS进阶 【3.其他常见对象】

3.  其他常见对象

3.1  Number(数字对象)

1.  创建方式

let num1 = 123.456
    let num2 = new Number(999)//不推荐
    console.log(num1);
    console.log(num2);

2.  常用属性

    let num1 = 123.456
    let num2 = new Number(999)//不推荐
    console.log(num1);
    console.log(num2);

    // 属性
    console.log(Number.NaN);//不是数字
    console.log(NaN);
    console.log(Number.MAX_VALUE);//最大值
    console.log(Number.MIN_VALUE);//最小值

    console.log(Number.POSITIVE_INFINITY);//正无穷
    console.log(Infinity);
    console.log(Number.NEGATIVE_INFINITY);//负无穷
    console.log(-Infinity);

3.  常用方法

    let num1 = 123.456
    let num2 = new Number(999)//不推荐

    // 方法
    // toFixed()保留小数 返回值(结果)是字符串
    console.log(num1.toFixed(1));
    let n1 = 100
    console.log(n1.toFixed(1));

    // tostring()转换成字符串 规则等同于sting()
    console.log(n1);
    console.log(string(n1));
    console.log(n1.tostring());
    // 转其他数字进制 返回值是字符串
    console.log(n1.tostring(2));
    console.log(n1.tostring(8));
    console.log(n1.tostring(16));
    // 静态方法
    console.log(Number.parseInt(12.1));
    console.log(parseInt(12.1));
    console.log(Number.parseFloat(444));
    console.log(parseFloat(444));
    // 返回true/false
    console.log(Number.isNaN("a"));//false 是不是NaN
    console.log(Number.isFinite(Infinity));//false 是不是有限数字
    console.log(Number.isInteger(888));//true 是不是整数

 3.2  Boolean(布尔对象)
let boo1 = true
    let boo2 = false
    let boo3 = new Boolean(true)

    console.log(boo1);
    console.log(boo2);
    console.log(boo3);
    // 方法
    console.log(boo1.toString());//转换为字符串
    console.log(boo3.valueOf());//返回布尔值
    // 转换数据类型
    console.log(Boolean(1));
    console.log(Boolean({}));
    console.log(Boolean([]));
    console.log(Boolean([1, 2, 3]));

3.3  Object(对象)

1.  创建方式

let obj1 = {name: "张三", age: 18};      // 字面量
let obj2 = new Object();                  // 构造函数
let obj3 = Object.create(proto);          // 基于原型创建

2.  常用操作

// 访问属性
obj.name;                   // 点语法
obj["name"];                // 方括号语法

// 新增/修改属性
obj.sex = "男";
// 删除属性
delete obj.age;

// 判断属性是否存在
"name" in obj;              // 包括原型链

3.  对象方法

    /*
    Object.keys()所有的键组合成数组
    Object.values()所有的值组成数组
    */
    let obj = {
      name: "张三",
      age: 20,
      sayHi: () => {
        console.log('Hello')
      }
    }
    let obj_2 = new Object()

    // 对象属性方法 hasOwn()判断有没有属性
    // in
    console.log('height' in obj);//false
    console.log(Object.hasOwn(obj, "name"));//true
    console.log(Object.hasOwn(obj, "weight"));//false

    // 所有的键组合成数组
    console.log(Object.keys(obj));
    // 所有的值组成数组
    console.log(Object.values(obj));

4.  对象存储方法

    //对象名字张三
    let people = { name: "张三" }
    console.log(people.name);
    // 新对象与people指向同一个
    let p2 = people
    // 从新入口,修改内部值
    p2.name = "李四"
    // 原来的对象的内部值是否受影响
    console.log(people.name);//"李四"
    console.log(p2.name);//"李四"
Object.assign(target, ...sources);  // 合并对象
Object.freeze(obj);                 // 冻结对象
Object.seal(obj);                   // 密封对象
Object.create(proto);               // 创建对象
Object.defineProperty(obj, prop, descriptor); // 定义属性
Object.keys(obj); // 获取对象所有自身可枚举属性名
Object.values(obj); // 获取对象所有自身可枚举属性的值
Object.entries(obj); // 获取对象所有自身可枚举属性的键值对数组

3.4  Array(数组对象)

1.  创建方式

 //创建
    let arr1 = [1, 23, 44]
    let arr2 = new Object(888, 999)

    //伪数组【类数组】
    let a = {
      0: "张三",
      1: "李四",
      2: "王五",
      length: 3
    }
    //转成真数组
    console.log(a);
    // Array.from()转成真数组
    console.log(Array.from(a));

2.  常用属性

let arr1 = [1, 23, 44]
    // 属性
    console.log(arr1.length);//数组的长度3

3.  常用方法

//创建
    let arr1 = [1, 23, 44]
    let arr2 = new Object(888, 999)

    // 方法
    //push()向后添加一项,返回值是新长度
    let jieguo = arr1.push(100)
    console.log(arr1);//[1,23,44,100]
    console.log(jieguo);//4

    console.log(arr1.push(200));//5
    //pop()删除最后一项,返回值是被删除的那一项
    let = jg_2 = arr1.pop()
    console.log(arr1);//[1,23,44,100]
    console.log(jg_2);//删掉的200
    //unshift()向前新增一项,返回新长度
    //shift()向前删除一项,返回删除项

    //向中间增删改 splice(位置,删除几项,新增项)一键全包
    arr1.splice(1, 0, "新", "新2", "新3") //增
    console.log(arr1);// [1, '新', '新2', '新3', 23, 44, 100]
    arr1.splice(1, 2)//删除
    console.log(arr1);//[1, '新3', 23, 44, 100]
    arr1.splice(1, 1, 520)//修改
    console.log(arr1);//[1, 520, 23, 44, 100]

增删操作

arr.push(x);                // 末尾添加元素
arr.pop();                  // 末尾删除元素
arr.unshift(x);             // 头部添加元素
arr.shift();                // 头部删除元素
arr.splice(start, n, x);    // 删除/替换/插入元素

查找和判断

arr.indexOf(x);             // 查找元素下标
arr.lastIndexOf(x);         // 从后往前查找
arr.includes(x);            // 是否包含元素
arr.find(fn);               // 查找第一个满足条件的元素
arr.findIndex(fn);          // 查找第一个满足条件的元素下标

截取和合并

arr.slice(start, end);      // 截取子数组
arr.concat(arr2);           // 合并数组
arr.join("分隔符");         // 转字符串

遍历方法

arr.forEach(fn);            // 遍历数组
arr.map(fn);                // 映射新数组
arr.filter(fn);             // 过滤新数组
arr.reduce(fn, initial);    // 归约
arr.some(fn);               // 是否有元素满足条件
arr.every(fn);              // 是否所有元素都满足条件

排序和反转

arr.sort(fn);               // 排序
arr.reverse();              // 反转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值