前端学习Javascript之ES6详解(二)

前端基础知识学习,前端开发ES6学习,ES6,前端基础学习

前端基础知识学习

前端基础知识学习: 延续上一篇文章, 继续进行前端基础知识的学习并深入了解 ES6 以上版本新添加的特性以及优化写法(例如 ES8 , ES9 等).


1. Object.values()

该方法返回一个数组,其成员是参数对象本身遍历属性的键值。

const obj = {
name: “lucy”,
age: 12,
sex: “male”,
};
console.log(Object.values(obj));  // [‘lucy’, 12, ‘male’]


2. String.prototype.padStart()

该方法可以把指定字符串添加到字符串头部,并返回一个新的字符串

// /**
// * str.padStart(targetLen,padStr)
// * targetLen,当前字符串希望被填充到的目标长度,如果targetLen小于当前字符串长度,则返回当前字符串本身
// * padStr,用来填充的字符串,可选参数,如果padStr太长,填充后的字符串长度超过了目标长度,则会被截断,保留左侧部分
// * /

const str = “abc”;
console.log(str.padStart(5)); // ” abc”
console.log(str.padStart(5, “d”)); // “ddabc” 把d填充到字符串前面,并且目标字符串长度为5
console.log(str.padStart(5, “123456”)); //”12abc” 把123456填充到字符串前面,目标字符串长度为5,填充后目标字符串太长,自动截断
console.log(str.padStart(1)); // “abc” 空字符串填充,目标字符串长度为1,小于原字符串,返回原字符串


3. String.prototype.padEnd()

此方法可以将指定的字符串添加到字符串的头中,并返回一个新字符串。

const str = “abc”;
console.log(str.padEnd(5)); // “abc ”
console.log(str.padEnd(5, “d”)); // “abcdd” 把d填充到字符串后面,并且目标字符串长度为5
console.log(str.padEnd(5, “123456”)); //”abc12″ 把123456填充到字符串后面,目标字符串长度为5,填充后目标字符串太长,自动截断
console.log(str.padEnd(1)); // “abc” 空字符串填充,目标字符串长度为1,小于原字符串,返回原字符串


4. for await of

异步迭代器,它可以等待每个promise对象被解析后再进行下一步。

function fTimeOut(times) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(times);
}, times);
});
}

async function timeTest() {
const arr = [fTimeOut(1000), fTimeOut(2000)];
for await (const item of arr) {
console.log(Date.now(), item);
}
}
timeTest();

// 结果:1646533267656 1000

1646533268657 2000


5. Object.fromEntries()

将键值对列表转换为对象。

const arr = [
[“a”, “hello”],
[“b”, “world”],
];
console.log(Object.fromEntries(arr));//{a: ‘hello’, b: ‘world’}


6. try…catch异常可选

在 ES10 之前catch的err参数是必需的,在ES10之后可以省略。

try {
console.log(“ok”);
} catch {
console.log(“error”);
}


7. JSON.Stringify增强

在 ES10 中, JSON.stringify 在显示一些超出范围的Unicode编码时的错误问题得到了修复。

// “\uD83D\uDE0E” 多字节字符
console.log(JSON.stringify(“\uD83D\uDE0E”));//”😎”
console.log(JSON.stringify(“\uD83D”));//”\ud83d” 这是一个无效的字符串,以前会替换为特殊字符,现在转义为JSON转义序列


8. 空值合并运算符(??)

当左操作数未定义或为空时,返回右操作数;否则,返回左操作数。

const str1 = undefined ?? “right”;
const str2 = null ?? “right”;
const str3 = “left” ?? “right”;
console.log(str1); // right
console.log(str2); // right
console.log(str3); // left


9. 逻辑运算符与赋值表达式(&&=,||=,??=)

逻辑与赋值(&&=)

let a = 1;
let b = 2;
a &&= b;
console.log(a); // 2 相当于 a && (a = b)

逻辑或赋值(||=)

let a = 1;
let b = 2;
let c = false;
a ||= b;
c ||= b;
console.log(a, c); // 1 2 相当于a || (a = b)

逻辑空赋值(??=)

let a = 1;
let b = 2;
let c = false;
let d = null;
let e = undefined;
a ??= b;
c ??= b;
d ??= b;
e ??= b;
console.log(a, c, d, e); // 1 false 2 2 相当于a ?? (a = b)


10. 数字分割符“_”

正确写法:

console.log(123_456_789); // 123456789

错误写法:

放在数值最前面或者最后面

两个或以上分隔符放在一起

小数点前后

科学计数法中,表示指数的e(E)前后


友情提示: 前端学习有益于软件定制开发, 多媒体研发, 物联网工, AI 人工智能开发, 网站开发, 大数据平台建设及企业信息化应用等业务呈现更优良的效果, 学习前端道阻且长, 加油吧少年!

友情链接:https://www.ccwisdom.com/industrynews/

文案参考:https://blog.csdn.net/mountain_zq/article/details/122962712