美文网首页前端
JavaScript类型转换

JavaScript类型转换

作者: 无尾树袋熊 | 来源:发表于2019-04-17 19:46 被阅读0次

转换为字符串类型

方式一:

  1. 对于Number类型和Boolean类型来说, 直接利用变量调用toString()方法即可
  2. toString()方法会将调用者转换为字符串, 并且会将转换后的结果返回给我们,不会修改调用者原有的值
var num = 666;
var bl = true;
var res1 = num.toString();
var res2 = bl.toString();
  1. 对于null和undefined来说, 不能通过调用toString()方法来转换
var n = null;
var u = undefined;
var res3 = n.toString();//报错
var res4 = u.toString();//报错
  1. toString()括号里的值表示转换为多少进制
var num = 666;
var res4 = num.toString(2);
console.log(res4);//1010011010
var res5 = num.toString(16);
console.log(res5);//29a

方式二

  1. 将需要转换的数据传递给String()函数
  2. String()函数可以将Number/Boolean/null/undefined转换为字符串
    var num = 666;
    var bl = true;
    var n = null;
    var u = undefined;
    
    var res1 = String(num);
    var res2 = String(bl);
    var res3 = String(n);
    var res4 = String(u);
    console.log(res1); //666
    console.log(res2); //true
    console.log(res3); //null
    console.log(res4); //undefined

方式三

  1. 利用算数运算符的加法运算来转换, Number/Boolean/null/undefined转换为字符串
    var res1 = num + "";
    var res2 = bl + "";
    var res3 = n + "";
    var res4 = u + "";

    console.log(res1);
    console.log(res2);
    console.log(res3); 
    console.log(res4); //undefined
  1. 任何类型和字符串想加,都会先转换为字符串之后再想加

转换为Number类型

方式一

  1. 将需要转换的数据传递给Number()函数
  2. 转换对象为字符串
    1. 都是数字, 正常转换
    2. 中部仅仅有数字,转换为NaN
    3. 没有内容"" " ",转换为0
  3. 对于布尔类型: true转换为1, false转换为0
  4. 对于null: 转换为0
  5. 对于undefined: 转换为NaN
  6. 通过Number函数或者通过+-运算符转换,都不能转换复杂的字符串
    var bl = true;
    var n = null;
    var u = undefined;
    var str1 = "123";
    var str2 = "123abc";

    var res1 = Number(bl);
    var res2 = Number(n);
    var res3 = Number(u);
    var res4 = Number(str1);
    var res5 = Number(str2);

    console.log(res1); //1
    console.log(res2); //0
    console.log(res3); //NaN
    console.log(res4); //123
    console.log(res5); //NaN

方式二

  1. 利用算数运算符来转换
  2. 在需要转换的类型前面加上+加号或者-减号即可
  3. +加号不会改变数据的正负性,减号会改变
  4. 通过Number函数或者通过+-运算符转换,都不能转换复杂的字符串
    var bl = true;
    var n = null;
    var u = undefined;
    var str1 = "123";
    var str2 = "123abc";
    
    var res1 = +bl;
    var res2 = +n;
    var res3 = +u;
    var res4 = -str1;
    var res5 = +str2;

    console.log(res1); //1
    console.log(res2); //0
    console.log(res3); //NaN
    console.log(res4); //-123
    console.log(res5); //NaN

方式三

  1. 通过parseInt()/parseFloat()函数
  2. parseInt: 只能提取整数
  3. parseFloat: 可以提取小数
  4. 可以转换复杂字符串
    var num1 = 3.14;
    var bl = true;
    var n = null;
    var u = undefined;
    var str1 = "123";
    var str2 = "123abc123";

    var res1 = parseFloat(num1);
    var res2 = parseInt(bl);
    var res3 = parseInt(n);
    var res4 = parseInt(u);
    var res5 = parseInt(str1);
    var res6 = parseInt(str2);

    console.log(res1); //3.14
    console.log(res2); //NaN
    console.log(res3); //NaN
    console.log(res4); //NaN
    console.log(res5); //123
    console.log(res6); //123
  1. 不能转换boolean/null/undefined
  2. parseInt/parseFloat ,会从左至右的提取,一旦被中断后续的就提取不到了
  3. 对于parseFloat来说,只能提取一个点,第二个点会被中断
var str3 = "3.123.66";
var res7 = parseFloat(str3);
console.log(res7); //3.123

转换为boolean

  1. 将需要转换的数据传递给Boolean()函数即可
  2. 对于字符串而言:
    1. 只要是空字符串(没有任何内容), 都会转换为false
    2. 只要字符串中有内容(包含空格/Table),都会转换为true
  3. 对于Number类型而言:只要不是0都会转换为true,只有0会转换为false
  4. 对于null和undefined而言, 都会转换为false
  5. 对于NaN也会转换为false
总结:"" / 0 / null / undefined / NaN  --> false
    var num = 666;
    var n = null;
    var u = undefined;
    var str4 = "";
    var str5 = " ";
    
    var res1 = Boolean(num);
    var res2 = Boolean(u);
    var res3 = Boolean(n);
    var res4 = Boolean(str4);
    var res5 = Boolean(str5);

    console.log(res1); //true
    console.log(res2); //false
    console.log(res3); //false
    console.log(res4); //false
    console.log(res5); //true

相关文章

网友评论

    本文标题:JavaScript类型转换

    本文链接:https://www.haomeiwen.com/subject/wfdowqtx.html