算数运算
1. 加法 +
一、拼串
概念: 不同类型数据和字符串进行 操作会拼接字符串。
1、如果是字符进行加法,会 "拼串"
result = "123" + "456";
console.log("result=" + result); // result=123456
console.log("result的类型:" + typeof(result)); // result的类型:string
2、任何类型和字符做加法运算会转化为字符串 然后再拼串
var result = "Hello" + 123; // 先把 123 变为 字符串 "123 " ,再拼串, 就是 result = "Hello" +"123";
console.log("result=" + result); // result=Hello123
console.log("result的类型:" + typeof(result)); // result的类型:string
⚠️ 注: 拼串的结果 和 两个类型的拼接的表达形式无关而是和 字符串的本身表达形式有关
🚀T-测试 拼接字符串结果影响因素是否和 字符串形式 或 拼接形式有关。
1)、改变拼接形式
// 无明显空格
result = "Hello" + 123;
// 明显空格
result = "Hello" + 123;
// 无空格
result = "Hello"+123;
结果都是result=Hello123
2)、改变字符串本身
result = "Hello " + 123;
结果result=Hello 123
基于这一特性
所以可以使用这个方法把其他数据类型转化为 String类型
result = "Hello" + " ";
⚠️注: 加法的运算顺序,从左到右
2. 减法 -
除了加法中的拼串,其余的运算都是把其他数据类型转化为 Number 数据类型
3. 乘法 *
1、基本规则
1、undefined 转化为 number相当于 NaN
var result = 2*undefined;
console.log("result=" + result); // result=NaN
console.log("result的类型=" + typeof(result)); // result的类型==number
2、null 转化为 number是 0
result = 2 * null ;
console.log("result=" + result); // result=0
console.log("result的类型=" + typeof(result)); // result的类型=number
任何值做 - * / 运算 都会变成 number 数据类型, 可以利用这个特点把其他数据类型转化为 number 数据类型。
4. 除法 /
...略
(完)
运算符
1. 一元运算符
- 号 对于非number 类型的值 ,加 - 号 会变成 number类型的值
如 a= true ;
a = -a ;
console.log(typeof a); // 输出number
consle.log( a ); //输出 -1
可以对其他任意数据类型使用 +
此时的 + 为 一元运算符 ,来将其变成 number 数据类型 ,原理和Number () 函数一样
2. 逻辑运算符
1、!非
概念: 对非布尔值运算取负,先将非布尔值 变为 布尔值类型再取反。可以将任意数据类型转化为 boolean类型,作用原理和Boolean()函数一样 ,但是属于隐式类型转换
2、&& 与
概念: 只要有一个false 就返回false ( 同1为1,有0为0 )。
理解: 如同爱情,只要有一个人不是真心的,都不是真爱, 双方都是真心的才是 真爱。
3、|| 或
概念: 只要有一个为true 就返回true( 同0为0,有1为1 )
理解: 如同亲情,只要有一个人爱你,皆为亲情
(完)
3. 非布尔值的或与运算符
方法: 先转换为布尔值类型再运算,并且返回原值。
两种情况
1、&& 运算
如果第一个值为true,则返回后面的值:
2&&3 第一个值 为 2为真,根据原则 同1为1,有0为0,不管是 同1情况 还是 有0情况都需要看 最后一个数才能判断结果。
a = 2&&3 // 3
如果第一个为false,则直接返回第一个值:
0&&3 第一个值为 0为假,根据原则 同1为1,有0为0,不管后面是真或假,结果都为假,所以看 第一个值就能判断结果。这个现象也称为 “短路”。
a = 0&&2; // 0
2、|| 运算
如果第一个值为true,就返回第一个值 [短路]
如果第一个值为false,就返回第二个值
小结:
- &&运算: 短路的值是 false, 所以第一个值是 false 就返回第一个值.
- ||运算: 短路的值是 true, 所以第一个值是 true, 就返回第一个值
(完)
4. 赋值运算符
复制操作: + = , -= , *= / , / = , % =
5. 关系运算符
暂略...