补充知识
模板字符串
使用模板字符串可以让代码更简洁 不用使用+号进行拼接 ``模板字符中 &{里面写js表达式}
console.log(`我叫${user.name},今年${user.age}岁了,性别是${user.gender},目前${user.age >= 18 ? "已成年" : "未成年"}`);
类型转换不会影响原本的数据
var x ='1';
var y =x+2;
console.log(x ,typeof x);
结果:1 string
复合的赋值运算符
+= -= /= *= %= **=
如下
var x = 2;
x += 3; // 等同于 x = x + 3;
x *= 1 + 2; // 等同于 x = x * (1 + 2);
x *= x++ + 2; // 等同于 x = x * (x++ + 2);
逗号运算符
写法:表达式1, 表达式2
依次运行两个表达式,返回表达式2
逗号运算符的优先级比赋值更低
详解逗号运算符
var x = 1;
x = (x++ * 2, x++ * 2, x++ * 2);
console.log(x);
// 注意: 每个表达式的赋值会被记录
// 输出结果为6
void 运算符
一元运算符
写法:
- 普通写法:
void 表达式
- 函数写法:
void(表达式)
运行表达式,然后返回undefined
console.log(void 1); // 结果:undefined
console.log(void true); // 结果:undefined
console.log(void (1 + 2)); // 结果:undefined
console.log(void 1 + 2); // 结果:NaN 原因:void 1 优先级比较高所以先执行得到 undefined转数字=NaN+2 所有数和NaN相加都等于NaN
typeof 运算符
一元运算符
写法:
- 普通写法:
typeof 表达式
- 函数写法:
typeof(表达式)
typeof运算,返回表达式的类型,是一个字符串。console.log(typeof 1 + 2); //结果:number2 原因 因为typeof优先级比较高所以先执行了typeof 1=number +2=number2 console.log(typeof (1 + 2));//结果:number