JS类型转换(显示、隐式)

1、类型转换(显示、隐式)

显示类型转换:

​ 1、parseInt 转换成整数

var a = '123.1px';
console.log(parseInt(a)); //123 将一个string转换成整数,只取第一个整数

​ 2、parseFloat 转换成浮点数(小数)

var a = '123.2';
console.log(parseFloat(a));//123.2

​ 3、toString 转换成字符串

​ 其他类型跟字符串拼接,那么拼接之后就是字符串类型

var a = 123;
var b = c.toString();
console.log(typeof b);

隐式类型转换(没有通过其他手段进行转换)

1、两边都是数字类型的字符串,要有运算符相连

console.log(3 * '8'); //24
console.log('3' * '8'); //24
​
console.log(3 * null);// null会转换成0
console.log(3 * false);//false转为0
console.log(3 * true);//true转为1
​
console.log(3 * '9px');//NaN 不是数字,不纯的数字没办法隐式类型转换
console.log(3 * undefind);//NaN ubdefind没办法隐式类型转换

类型转换总结:

​ 无论哪种运算,只要出现undefined参与运算,结果就是NaN;

​ 数字类型的字符串、false、true、null都能进行隐式类型转换,除了加号;

​ 加号比较特殊,没办法进行隐式类型转换,除了Boolean值除外;

2、运算符

​ 1、数学运算符

/*  + - * / % ()  */

​ 2、关系运算符

> < >= <= == != ===(全等) !==(不全等)
最终会返回布尔值
​
var a = function(){
    alert();
}
var b = function(){
    alert();
}
console.log(a==b); //false
​
/* === 全等:
基础数据类型除了比较值外,还要比较数据;类型 
引用类型比较内存地址
*/
console.log(11=='11'); //true
console.log(11==='11');//false

​ 3、逻辑运算符

/*
&& 逻辑与  都真才真,有假就假 a&&b a真抛出b a假抛出a
|| 逻辑或  有真则真,全假则假 a||b a真抛出a a假抛出b
! 逻辑非
*/
​

​ 4、赋值运算符

/* + += -= ++ -- /= %/ *=*/
var a = 11;
a+=10;
console.log(a);
​
var b = 12;
console.log(b--);
console.log(b++);
​
/*
    ++在变量前和变量后的区别
    (参与运算)++a 先自增再执行
*/
var x = 10;
var y = x++;
console.log(x);//11
console.log(y);//10
​
var z = 2 + x++;
console.log(x);//11
console.log(z);//12

3、运算符练习

/*
作业的最终结果:总结出运算符的计算顺序(优先级)
   var a = 3 < 6 && 7 < 14;    //true
        原式 = true && true
        = true

    var a = 1 + 2 < 3 + 3 && 3 + 4 < 2 * 7;
        原式 = 3 < 6 && 7 < 14
        = 上一题
        = true

    var a = false + true && 13;
        原式 = 0 + 1 && 13
        = 1 && 13
        = 13


    var a = 15;
    false + a++ + true > 8 && 13 || 6
        原式 = false + 15 + true > 8 && 13 || 6
        = 16 > 8 && 13 || 6
        = true && 13 || 6
        = 13 || 6
        = 13


*/
var a = 3 < 6 && 7 < 14;  //true

var a = 1 + 2 < 3 + 3 && 3 + 4 < 2 * 7;//true

var a = false + true && 13;//13

var a = 15;
false + a++ + true > 8 && 13 || 6 //13

​
       

猜你喜欢

转载自blog.csdn.net/qq_41741971/article/details/89680489