JavaScript数据类型转换

目录

1.转换为string类型

2.转换为number类型

3.转换为Boolean类型

4.其他进制的数字


JavaScript中的数据类型转换大致分为2种,一种是自动类型转换,另一种是强制类型转换。自动类型转换就是根据上下环境程序自动类型转换,强制类型转换是指将一个数据类型强制转换为其他的数据类型。类型转换主要指,将其他数据类型转换为:String ,Number, Boolean.

1.转换为string类型

方法一:

  • 调用被转换数据类型的toString()方法
  • 该方法不会影响原变量,它会将转换的结果返回
var a = 10;
console.log(typeof a);    //结果为number
var b = a.toString();
console.log(typeof b);    //结果为string

注意:null和undefined这两个值没有toString()方法,如果调用他们的方法会报错。

方法二:

  • 调用String()函数,并将被转换的数据作为参数传递给函数
  • 使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的toString()方法。但是对于null和undefined就不会调用toString()方法,它会将null直接转换为“null”;将undefined直接转换为“undefined”
var a = 12;
console.log(typeof a);    //结果为number
var b = string(a);
console.log(typeof b);    //结果为string

方法三:

  • 直接加一个空字符(理论上没有这种方法)
var a = true;
console.log(typeof a);    //结果为boolean
var b = a + '';
console.log(typeof b);    //结果为string

2.转换为number类型

方法一:调用number() 函数

//字符串转数字
Number("3.14");    // 返回 3.14
Number(" ");       // 返回 0 
Number("");        // 返回 0
Number("99 88");   // 返回 NaN

//布尔转数字
Number(false);     // 返回 0
Number(true);      // 返回 1

//null转数字
Number(null);       //返回0

//undefined转数字
Number(undefined);    //返回NaN
  • 如果是纯数字的字符串,直接转换为数字
  • 如果字符串中有非数字的内容 则转换为NaN
  • 如果字符串是一个空串或者全是空格的字符串,则转为0
  • true转成1,false转成0。Boolean转number通常被说成隐式转换
  • null转数字结果为0
  • undefined转数字结果为NaN

方法二:parseInt() 把一个字符串转换为一个整数;parseFloat()把一个字符串转换为一个浮点数。(此方法只适用于字符串)

//parseInt()方法
var a = "18.6px";
a = parseInt(a);
console.log(typeof a);    //结果为number
console.log(a);        //结果为18

//parseFolat()方法

var b = "18.6px";
b = parseFloat(b);
console.log(typeof b);    //结果为number
console.log(b);        //结果为18.6
  • parseInt() 和parseFloat() 方法取内容数值时都从左往右一位一位的读,读到非整数就停止

3.转换为Boolean类型

方法:调用Boolean()函数来将被转换对象转换为布尔值

  • 数字转布尔,除了0和NaN,其余都是true
  • 字符串转布尔,除了空串,其余都是true
  • null和undefined都会转换为false
  • 对象也会转换为true

4.其他进制的数字

        在js中,表示16进制的数字需要以0x开头;表示8进制的数字需要以0开头;如果要表示2进制的数字则需要以0b开头,但不是所有浏览器都支持。

a = 0x23;    //16进制数
b = 070;    //8进制数
c = 0b10;    //2进制数
d = "070";    //这种字符串有些浏览器会当成8进制解析,有些会当成10进制解析
e = parseInt(a, 10);    //可以在perseInt()中传递一个参数,来指定数字的进制
console.log(typeof a);
console.log(a);

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值