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(); // 反转