/**
* addition assignment
* 加法赋值 (+=)
* 加法赋值操作符 (+=) 将右操作数的值添加到变量,并将结果分配给该变量。
* 两个操作数的类型确定加法赋值运算符的行为。加法或串联是可能的。
*/
// Operator: x += y
// Meaning: x = x + y
const str1 = '1';
const str2 = 'str2';
const num1 = 1;
const num2 = 2.0;
const bool1 = true;
const bool2 = false;
// console.log(str1 + num1,
// str2 + num2, bool1 + str1,
// bool1 + num1, bool2 + num2,
// Number(true), Number(false));
/**
* addition
* 相加运算符 (+)
* 相加运算符 (+) 用于对两个操作数进行相加运算,
* 如果操作数中有一方为字符串,则该运算符将两个操作数连接成一个字符串。
*/
//表达式: x + y
const num3 = 3;
const num4 = 4;
const str3 = 'str3';
// console.log(num3 + str3);
/**
* assignment
* 赋值运算符(=)
* 简单赋值操作符(=)用于为变量赋值。赋值表达式本身的值为要赋值的值。
* 为了给多个变量赋一个值,可以链式使用赋值操作符。
*/
// Operator: x = y
let num5 = 5;
let num6 = 6;
const num7 = 7;
num5 = num6 = num7;
// console.log(num5, num6, num7);
/**
* async function expression
* async function 关键字用来在表达式中定义异步函数。
* 当然,你也可以用 异步函数语句 来定义。
* name
* 此异步函数的名称,可省略。如果省略则这个函数将成为匿名函数。该名称仅可在本函数中使用。
* paramN
* 传入函数的形参名称。
* statements
* 组成函数体的语句。
* 异步函数表达式与 异步函数语句 非常相似,语法也基本相同。
* 它们之间的主要区别在于异步函数表达式可以省略函数名称来创建一个匿名函数。
* 另外,异步函数表达式还可以用在
* IIFE (立即执行函数表达式,Immediately Invoked Function Expression) 中
*/
//async function [name]([param1[, param2[, ..., paramN]]]) { statements }
console