JS基础数据类型转换( 2 )

###数据类型转换
(一)强制转换(显示转换)
( 1 )parseInt( );转换为整数


let str = "123.123.123";
let num = parseInt(str);
console.log(num);

parseFloat( );转换为浮点小数

let str = "123.123.123";
let num = parseFloat(str);
console.log(num);

规则:从左到右从第一个数开始确定是否是数字,如果不是就直接转换结束(只看部分)


Number();将任意类转换为数字类型
规则:
1 ) 布尔值  true:1  flase :0 ;
2 )undefined : NaN ;
3 )unll : 0 ;
4 ) 字符串(string ) : 空字符串 (“ ”): 0 ;
规则:看整体 比如123abc,就直接转换为NaN ;

( 2 ) 强制转换为字符串
String () ;输出结果直接加引号,任何人类型都可以转换

let a = 123 ;
String(a);
console.log( String(a));

toString () ;输出结果直接加引号,不能转换undefined 和null ,其他的都可以

let a = 123 ;
let str = a.toString();
console.log( toString(str));

( 3 ) 强制转换为布尔
Boolean( ) ;
转换规则:false  " "(空字符串)   0   NaN   null  undefined 结果为false , 其他结果全部都为 true

console.log( Boolean(" "));
二  自动转换 (隐式转换)
( 1 )isNaN ( ) ; 在判断为非数字之前,自动调用Number( );方法将数据转换

console.log(isNaN (true));  结果为false,因为true用数字转换为1

( 2 )++   --  :在加(减)之前,自动调用Number( );方法将数据转换


let a = "2px";
a -- ;
console.log(a, typeof a );  结果NaN  number
####将其他类型转换为数字类型,且值不变

let a = "200" ;
a = a - 0;
console.log(a, typeof a );  结果200  number
( 3 )+  :只要有一个字符串就做拼接,自动调用String( );  当没有字符串时,其他数据调用Number( );转换为数字进行运算

####若想让一个类型变为字符串,直接在后面拼接一个空字符串

let a = 1 ;
let b = true ;
console.log(typeof (true+ " ")) ;
( 4 )逻辑运算(也叫短路运算)

console.log(typeof (0||2||3) ;  结果为2

或 ||  主要是找真的(true)调用Boolean( ); 自动转换,找到true 就停止寻找 ,如果没有true ,则输出最后一个
与 && 主要是找假的(false)   同或规则相同
非 !   同或规则相同

console.log(! " ") ; 结果为true 
( 5 )比较大小时,将其转换为Number( );再进行比较

console.log("ba">"bb");
ask:每个字母都有一个大小值,越靠前越小,小写大于大写
###二 条件判断语句

( 1 )if

if(判断条件){            (一定是boolean值,如果不是会按Boolean() ;转换
条件为真时,执行的代码
}
let num = 5;
if(num>20){
consile.log("进入if");
}
consile.log("hello");

( 2 )if   .....else

if(判断条件){            (一定是boolean值,如果不是会按Boolean() ;转换
条件为真时,执行的代码
} else{
条件为真时,执行的代码
}
let score = 65 ;
if(score>=60){           
consile.log("及格");

} else{
consile.log("不及格");
}


( 3 )if ....else if    只要有一个成立,后面就不会运行了,只执行一个

if(判断条件1){            (一定是boolean值,如果不是会按Boolean() ;转换
条件为真时,执行的代码
} else if(判断条件2){
条件为真时,执行的代码
} else if(判断条件3){
条件为真时,执行的代码
}
.....可以有多个else if
let num = 0;

if(num > 1){
    console.log('进入第一个代码块');
} else if(num > 3){
    console.log('进入第二个代码块');
} else if(num > 10){
    console.log('进入第三个代码块');
} else {
    console.log('前面所有条件都为假');
}


( 4 )switch   那表达式1同表达式2,3....依次比较(严格等)相等后,会执行其表达式后面的语句,以及后面的全部语句,所以会在每个表达式后面加break;(酌情而定)


swicth (表达式1) {
    case 表达式2:语句1  (都是默认为字符串,如果类型不符,需要转换)
    break;
    case 表达式3:语句2
    break;
    case 表达式4:语句3
    break;
    case 表达式5:语句4
    break;
    ....
    default:语句5
}


let a = '1';
switch (a) {
    case 1: {
        console.log('a等于1');
        console.log('a等于1');
        console.log('a等于1');
        console.log('a等于1');
        console.log('a等于1');
        break;
    }
    case 2:
        console.log('a等于2');
        break;
    case 'hello':
        console.log('a等于hello');
        break;
    default:
        console.log('前面所有的case都不匹配');
}


  
  
 





posted @ 2018-07-22 23:17  Fen达  阅读(325)  评论(0编辑  收藏  举报