自动转换
// 所谓的自动转换,其实弱类型中的变量会根据当前代码的需要,进行类型的自动隐式转化 var box1 = 1 + true; // true 转换成数值,是1, false转换成数值,是0 console.log(box1); // 2 var box2 = 1 + "200"; console.log(box2); // 1200 原因是,程序中+的含义有2种,第一: 两边数值相加, 第二: 两边字符串拼接.但是在js中运算符的优先级中, 字符串拼接的优先级要高于数值的加减乘除,所以解析器优先使用了+号作为了字符串的拼接符号了,因为程序就需要+号两边都是字符串才能完成运算操作,因此1变成字符串最终的结果就是 "1" +"200" var box3 = 1 - "200"; console.log(box3); // -199;因为-号中表示的就是左边的数值减去右边的数值,因此程序就会要求"200"是数值,因此内部偷偷的转换了一下5.运算符/*//算术运算符 + 数值相加 - 数值相减 * 数值相乘 / 数值相除 % 数值求余 ** 数值求幂 a++ 数值后自增1 a=a+1 ++a 数值前自增1 a=a+1 b-- 数值后自减1 b=b-1 --b 数值前自减1 b=b-1//赋值运算符 = += -= *= /= %= **=//比较运算符,比较的结果要么是true, 要么是false > 大于 < 小于 >= 大于或者等于 <= 小于或者等于 != 不等于[计算数值] == 等于[计算] !== 不全等[不仅判断数值,还会判断类型是否一致] === 全等[不仅判断数值,还会判断类型是否一致]//逻辑运算符 && 并且 and 两边的运算结果为true,最终结果才是true || 或者 or 两边的运算结果为false,最终结果才是false ! 非 not 运算符的结果如果是true,则最终结果是false ,反之亦然. //逻辑运算符进阶用法: 1. 实现短路 var a = false || 2 >>> a = 2 var a = true && "hehe" >>> a = "hehe" 2. 快速布尔化[把数据快速转换成布尔类型] var a = 100 !!a >>> true//条件运算符[三目运算符] 条件?true:false 例如: var age = 12; var ret = age>=18?"成年":"未成年"; // 相当于 python中的"成年" if age >= 18 else "未成年" console.log(ret); */
经验总结扩展阅读
-
NANA谈健康|出现泡沫尿,是肾出现了问题吗?3种疾病确实要重视起来
-
-
-
三亚海鲜市场该如何还价格,三亚的海鲜很贵吗?哪里可以买到便宜又新鲜的平民海鲜呢?
-
2022年9月19日是拜观音吉日吗 2022年9月19日适合拜观音吗
-
-
-
-
-
-
为什么国产的有些电影评分那么低明星的酬劳却是那么多?
-
-
女娲|“女娲补天”或许不是神话?可能发生于上古文明,补的也许是虫洞
-
-
-
-
-
-
霍思燕 杜江霍思燕结婚9年,恩爱如热恋:所谓恩爱夫妻,全靠两人打配合
-