「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」。
Object.values()
Object.values()返回一个新数组,里面的成员是传入的参数对象自身的(不含继承的)所有可遍历属性对应的值
let obj = {
name: "lmw",
age: 20,
like: "sport"
};
console.log(Object.values(obj)); // [ 'lmw', 20, 'sport' ]
Object.entries()
Object.entries()方法返回一个新数组,里面的成员是传入的参数对象自身的(不含继承的)所有可遍历属性的键值对数组
let obj = {
name: "lmw",
age: 20,
like: "sport"
};
console.log(Object.entries(obj)); // [ [ 'name', 'lmw' ], [ 'age', 20 ], [ 'like', 'sport' ]
扩展:Object.keys() 方法返回一个新数组,里面的成员是传入的参数对象自身的(不含继承的)所有可遍历的属性
let obj = {
name: "lmw",
age: 20,
like: "sport"
};
console.log(Object.keys(obj)); // [ 'name', 'age', 'like' ]
// 注意:如果传入的参数是数组,则返回的是所有可遍历的索引。
Object.getOwnPropertyDescriptors()
Object.getOwnPropertyDescriptors()方法用来获取传入对象的所有自身属性的描述符
let obj = {
name: "lmw",
age: 20,
like: "music"
};
let desc = Object.getOwnPropertyDescriptors(obj);
console.log(desc);
// 打印结果
{
name: {
value: 'lmw', // value表示当前对象的默认值
writable: true, // writable表示对象属性是否可以修改
enumerable: true, // enumerable表示当前这个属性是否可以出现在对象的枚举属性中
configurable: true // 表示当前对象的属性能否用delete删除
},
age: {
value: 20,
writable: true,
enumerable: true,
configurable: true
},
like: {
value: 'music',
writable: true,
enumerable: true,
configurable: true
}
}
我们可以使用Object.defineProperty() 修改属性
let obj = {};
Object.defineProperty(obj, "name", {
value: "lmw",
writable: false, // 设置为false,该属性无法修改
configurable: false, // 设置为false,该属性不支持delete删除
enumerable: false, // 设置为false,该属性不可被枚举
});
验证
console.log(obj); // { name: 'lmw' }
obj.name = "lion";
console.log(obj); // { name: 'lmw' }
delete obj.name
console.log(obj); // { name: 'lmw' }
for (let key in obj) {
console.log(key); // ""
}
String.prototype.padStart
把指定字符串填充到字符串头部,返回新字符串
'abc'.padStart(10); // " abc",填充默认值""
'abc'.padStart(10, "*"); // "*******abc"
'abc'.padStart(6,"123465"); // "123abc"
'abc'.padStart(1); // "abc"
String.prototype.padEnd
把指定字符串填充到字符串尾部,返回新字符串。
'abc'.padEnd(10); // "abc ",填充默认值""
'abc'.padEnd(10, "*"); // "abc*******"
'abc'.padEnd(6, "123456"); // "abc123"
'abc'.padEnd(1); // "abc"