强制类型转换

05 强制类型转换

作者:FL
博客:https://www.cnblogs.com/flblogs/


String

  • 将其他数据类型转换为String

  • 方式一:调用数据类型的toString()方法

    • toString方法不会影响原变量,而是将转换的结果返回
    • 注意:toString方法不能转换null和unidentified
var a = 123;  
a =a.toString();  
  
console.log(a);  
console.log(typeof  a);  
  
a = null;  
// a = a.toString();//Uncaught TypeError  
console.log(a);  
console.log(typeof  a);  
  
a = undefined;  
// a = a.toString();//Uncaught TypeError  
console.log(a);  
console.log(typeof  a);
  • 方式二:String(要转换的变量)
    • 这种方法也可以转换null和unidentified
    • String(变量)方法对于null和unidentified,直接转换为字符串,其他类型与toString()相同
a = null;  
a = String(a)  
console.log(a);//null  
console.log(typeof  a);//string  
  
a = undefined;  
a = String(a);  
console.log(a);//undefined  
console.log(typeof  a);//string

Number

  • 注意:没有toNumber方法
  • 方式一:调用Number()方法
    • String -> Number:
      • 如果是纯数字,直接转换为Number
      • 如果是空格,转化为0
      • 把一个不能转换为Number的值强制转换,结果为NaN,例如“张三” -> NaN
    • null -> 0
    • Boolean -> Number: true -> 1,false -> 0
    • Undefined -> 0
a = Number(a);  
console.log(a);  
console.log(typeof a);
  • 方式二:调用parseInt()、parseFloat()方法
    • 作用:将字符串最前面是数字的字符串直接转换为数组
    • 对于非String使用,会先将其转换为String在操作
let b = "123abc456";  
b = parseInt(b);  
console.log(b);//123  
console.log(typeof b);

let c = true;  
c = parseInt(c);  
console.log(c);//NaN  
console.log(typeof c)
  • 表示其他进制的数字:
//    其他进制的数字  
    let d = 0x123;//16进制 0x开头  
    d = 0b10;//二进制 0b开头,有的浏览器可能不支持  
    d = 0o70;//八进制 0o开头  
  
    d = parseInt(d,8);//指定数字进制  
  
    console.log(d);//输出时会以十进制输出  
    console.log(typeof d);

Boolean

  • 使用Boolean()
    • 数字 -> 布尔 :除了0和NaN,其余都是true
    • 字符串 -> 布尔 : 除了空串,其余都是true
    • null和undefined -> 布尔: 都是false
    • 对象也会转换为true
let a = 6;  
a = Boolean(a);  
console.log(a);  
console.log(typeof a);  
  
let b = "1344za";  
a = Boolean(b);  
console.log(b);  
console.log(typeof b);
posted @ 2023-05-14 09:19  FL不凡  阅读(33)  评论(0编辑  收藏  举报