// 普通写法
let x;
let y = 20;
// 缩写写法
let x,
y = 20;
// 普通写法
let a, b, c;
a = 5;
b = 8;
c = 12;
// 缩写写法
let [a, b, c] = [5, 8, 12];
// 普通写法
let age = 24;
let status;
if (age > 18) {
status = "成年人";
} else {
status = "未成年";
}
// 缩写写法
let status = age > 18 ? "成年人" : "未成年";
let a = 12,
b = 20;
// 普通写法
let tmp = a;
a = b;
b = tmp;
// 缩写写法
[a, b] = [b, a];
// 普通写法
function sum(num1, num2) {
return num1 + num2;
}
// 缩写写法
let sum = (num1, num2) => num1 + num2;
在大括号的内部可以放入任意的 JavaScript
表达式,可以运算,以及引用对象属性,甚至可以调用函数
let name = "Mr-j";
// 普通写法
console.log("我的名字叫:" + name);
// 缩写写法
console.log(`我的名字叫:${name}`);
如果是多行的字符串也可以使用模板字符串简化,不需要再使用 \n
转义换行了
// 普通写法
console.log("你是我的眼\n带我领略四季的变换");
// 缩写写法
console.log(`你是我的眼
带我领略四季的变换`);
有时候为了匹配多个条件需要使用很长的 ||
来检查多个条件链,可以使用数组中的方法来进行判断
let value;
// 普通写法
if (value === 1 || value === 2 || value === 3 || value === 4) {
console.log("小于5");
}
// 缩写写法
if ([1, 2, 3, 4].includes(value)) {
console.log("小于5");
}
// 普通写法
let age = parseInt("24");
let height = parseFloat("180.7");
// 简写写法
let age = +"24";
let height = +"180.7";
使用双星号语法代替 Math.pow()
来求幂
// 普通写法
let num = Math.pow(2, 4); // 16
// 缩写写法
let num = 2 ** 4; // 16
使用 ~~
来对数字下取整
// 普通写法
Math.floor(8.23); // 8
// 缩写写法
~~8.23; // 8
...
简化代码扩展运算符 ...
,可以将一个数组"打散"成用逗号分隔的参数序列.
let arr1 = [10, 20, 30];
// 普通写法
let arr2 = arr1.concat([40, 50]); // [10,20,30,40,50]
// 缩写写法
let arr2 = [...arr1, 40, 50]; // [10,20,30,40,50]
// 缩写写法
const arr = [2, 4, 8, 5, 10];
Math.max(...arr); // 10
Math.min(...arr); // 2
使用 ES5 中的 forEach()
方法可以一行代码循环遍历数组
const nums = [1, 2, 3, 4, 5];
// 普通写法
for (let i = 0; i < nums.length; i++) {
console.log(i, nums[i]);
}
// 缩写写法
nums.forEach((item, index) => console.log(index, item));
当符号左边条件为真的时候执行右边的语句
let age = 20;
//普通写法
if (age > 18) {
console.log("成年人");
}
// 缩写写法
age > 18 && console.log("成年人");
在 js 中使用 !!
运算符对目标对象执行两次取反操作可以将任何内容转换为布尔值
!!true; // true
!!2; // true
!![]; // true
!!"test"; // true
!!false; // false
!!0; // false
!!""; // false
!!null; // false
!!undefined; // false
let str = "";
// 普通写法
for (let i = 0; i < 5; i++) {
str += "hello "; // 'hello hello hello hello hello '
}
// 缩写写法
"hello ".repeat(5); // 'hello hello hello hello hello '
let str = "kapilalipak";
const table = {};
for (let char of str) {
table[char] = table[char] + 1 || 1;
// "||" 返回链上的第一个真值, 存元素计数器+1,不存在设为1
}
// 输出: {k: 2, a: 3, p: 2, i: 2, l: 2}
let string = "kapilalipak";
const map = new Map();
for (let char of string) {
map.set(char, map.get(char) + 1 || 1);
}
// 输出: Map(5) { 'k' => 2, 'a' => 3, 'p' => 2, 'i' => 2, 'l' => 2 }