JS基础语法-类型转换

128 阅读2分钟

1.0强制类型转换

指将一个数据类型强制转换为其他的数据类型

类型转换主要指: 将其他的数据类型转换为 String Number Boolean


2.0 转换为String

2.1 方法一:

调用被转换数据类型的toString()方法 => 被转换类型 . toString()

该方法不会影响到原变量,它会将转换的结果返回且该方法也有局限性

注意null和undefined这两个值没有toString() 方法,如果调用会直接报错

<script>
var num = 27;

   num = num.toString();
   console.log(typeof num);
   console.log(num);
</script>
2.2 方法二:

调用String()函数,并将被转换的数据作为参数传递给函数

使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的toString()方法

但是对于null和undefined, 就不会调用toString()方法,它会将null直接转换为字符串null => 'null'

将undefined直接转换为字符串undefined => 'undefined'

<script>
var num = 27;

   num = String(num);
   console.log(typeof num);
   console.log(num);
  <script>

3.0 转换为 Number

3.1 方法一:

使用Number()函数

字符串转换为数字

  1. 如果是纯数字的字符串,则直接将其转换为数字
  2. 如果字符串中有非数字的内容,则转换为NaN
  3. 如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
<script>
//调用Number()函数来将a转换为Number类型
        var sum = "727";

        a = Number(a);
        console.log(typeof a);
        console.log(a);
</script>

布尔值转换为数字

  1. true 转成 1
  2. false 转成 0

Null转换为数字是 => 0

undefined 转换为数字 => NaN


3.2 方法二

这种方式专门用来对付字符串

  1. parseInt() 把一个字符串转换为一个整数

parseInt()可以将一个字符串中的有效的整数内容去出来,然后转换为Number

  1. parseFloat() 把一个字符串转换为一个浮点数

parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数

<script>
//parseInt()方法
var num = "123a456px";
//调用parseInt()函数将a转换为Number
num = parseInt(num);

console.log(typeof num);
console.log(num);

//parseFloat()方法
  var a = "123.456px"

  a = parseFloat(a);
  console.log(typeof a);
  console.log(a);
</script>
  1. 如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后再操作
<script>
var b = 119.27;

b = parseInt(b);
console.log(typeof b);
console.log(b);
</script>

4.0 其他进制的数字

在JS中

  1. 如果需要表示16进制的数字,则需要以0x开头

输出时,会直接转换为数字

  1. 如果需要表示8进制的数字,则需要以0开头
  2. 如果需要表示2进制的数字,则需要以0b开头
  3. 但是,并不是所有的浏览器都支持
<script>
//十六进制
var a = 0x11,
 //八进制
b = 011,
//二进制
c = 0b11;
    console.log(a);
    console.log(b);
    console.log(c);
</script>
  1. 向 "070" 这种字符串,有些浏览器会当成八进制进行解析,有些会当成十进制进行解析
  2. 可以在parseInt()中传递一个第二个参数,来指定数字的进制
<script>
var d = "070";

d = parseInt(d,10);
console.log(typeof d);
console.log(d);
</script>

5.0 转换为Boolean

方法: 使用Boolean() 函数

  1. 数字转换为布尔值 => 除了0和NaN, 其余都是true
  2. 字符串转换为布尔值 => 除了空字符串,其余都是true
  3. 特别注意: null 和 undefined 都会转换为 false