1.强制转换


A.Number()

B.String() toString()

C.Boolean()

  1. Number() 局限性:只能识别纯数字的字符串 和 纯布尔类型
  2. 可以识别小数点
  3. <script>
  4. var str="12px"
  5. console.log(Number(str)) //NaN(not a Number) 不是一个数字
  6. </script>
  7. parseInt 1.开头的字符必须以数字开头 2.遇到非数字的字符就停止解析
  8. parseFloat
  9. <script>
  10. var str="12.3333px";
  11. console.log(Number(str)); //NaN
  12. console.log(parseFloat(str)) //12.3333
  13. </script>
  1. x.toString(); x不是undefined或null时才可用
  2. String(x)
  1. Boolean()
  2. Tip:5种情况输出为false
  3. "" NaN undefined null 0
  4. <script>
  5. var a=10;
  6. var b=0;
  7. var c="hello world"
  8. console.log(Boolean(a)) //true
  9. console.log(Boolean(b)) //false
  10. console.log(Boolean(c)) //true
  11. </script>

2.自动转换

定义:不需要程序员干预,js自动完成的类型转换


1.算术计算中,数据都默认转为数字再计算,不能转换为数字的则为NaN

  1. <script>
  2. var a=1;
  3. var b=true;
  4. var d="2"
  5. var c="hello world";
  6. var str=a+b; //var str=a+Number(b)
  7. var sum=a+c; //var sum=String(a)+c;
  8. console.log(str); //2
  9. console.log(sum) //1hello world
  10. console.log(a+d) //12
  11. console.log(b+c) //truehello world
  12. console.log(a-c) //NaN
  13. </script>

2.特殊 +运算中,只要碰到字符串,+就变为字符串拼接

  1. <script>
  2. var a=20;
  3. var b=true;
  4. console.log(a-(b+"2")) //输出NaN
  5. </script>

3.运算符和表达式

1.算术运算

  1. +,-,*,/,%,++,--

2.比较运算:将两个值作比较—>返回值:true、false

  1. >,<,>=,<=,==,!=
  1. <script>
  2. /*
  3. 先将两边的值转换为Number再比较
  4. */
  5. var a=10;
  6. var b="20"
  7. var c="true"
  8. console.log(a>b); //Number(a)>Number(b) false
  9. console.log(a>c) //10>NaN NaN是不能参与计算的,它和任何值做计算结果都是NaN
  10. //false
  11. console.log(a!="true") //NaN和任何数据做!=比较时,始终返回true
  12. </script>

特殊情况
NaN: NaN不等于,不大于,不小于任何值(包括自己)
NaN和任何数据做!=比较时,始终返回true
isNaN(n):本意是判断一个值是否是NaN

3.逻辑运算:将多个关系运算综合起来,得出最终结论,返回值:true、false

  1. <script>
  2. /* &&与 ||或 !非
  3. && 两边都为true 结果才为true
  4. || 只要有一边为true结果就为true
  5. ! 取反
  6. */
  7. var a=20;
  8. var b=30;
  9. var c=40;
  10. var d=50;
  11. console.log(a<b && c<d) //true
  12. console.log(a<b && c>d) //false
  13. </script>

4.赋值运算

  1. <script>
  2. /* +=,-+,*=,/=,%= */
  3. var a=10;
  4. var b=20;
  5. a+=10;
  6. b-=10;
  7. console.log(a) //20
  8. console.log(b) //10
  9. </script>

5.三目运算

  1. <script>
  2. var a=10;
  3. var b=20;
  4. var c=(a>b)?"a大于b":"a小于b"
  5. console.log(c) //a小于b
  6. </script>

4.前++,后++

  1. <script>
  2. /* ++,--
  3. 在算术运算中++在前,先自增,后运算
  4. ++在后,先运算,后自增*/
  5. var a=10;
  6. a++; //a=a+1
  7. var b=a++ +11;
  8. console.log(a) //12
  9. console.log(b) //22
  10. </script>