网页设计实战之JavaScript(2) -- 详谈变量的数据类型转换

数据类型转换就是将一种数据类型转换成另外一种数据类型。
类型转换分为隐含转换和强制转换。
隐含转换在前面一战中,已介绍。本节着点说明强制转换。

数据类型有:

  • String 字符串
  • Number 数值
  • Boolean 布尔值
  • null 空值
  • undefined 未定义
  • object 对象
  • function
  • symbol

3 种对象类型:

  • object
  • Date
  • Array

其中String、Number、Boolean、null、undefined属于基本数据类型而Object属于引用数据类型。

检测数据类型:typeof 操作符

typeof "John"                 // 返回 string 
typeof 3.14                   // 返回 number
typeof NaN                    // 返回 number
typeof false                  // 返回 boolean
typeof [1,2,3,4]              // 返回 object
typeof {name:'John', age:34}  // 返回 object
typeof new Date()             // 返回 object
typeof function () {}         // 返回 function
typeof myCar                  // 返回 undefined (如果 myCar 没有声明)
typeof null                   // 返回 object

常有 3 种方式的转换:

  • 转换为字符串类型
  • 转换成数字型
  • 转换成布尔类型

JS是弱类型语言,变量的数据类型是由变量值的数据类型决定的。

一、转换为字符串

方式说明案例
toString()转换为字符串var num=1;num.toString();
String() 强制转换转换为字符串var num=1;String(num);

(一)、使用 toString( )方法

只适用Number、Boolean类型的数据,Null和Undefined类型数据会报错,并不适用。

var num = 123;
console.log(num);
console.log(typeof num);

var str=num.toString();
console.log(str);

(二)调用 String() 函数

语法:String(被转换对象)

  • 使用String()做 强制转换的时候,对于Number、Boolean类型的数据实际上就是调用toString( )方法。
  • 对于null和undefined,就不会调用toString( )方法,它会直接将 null 转化为 “null” ,将 undefined 转化为 “undefined”
var num = 123;
console.log(String(num));
console.log(typeof String(num));

二、转换为数字型

方式说明案例
parseInt(串)转换成整数数值型var num=parseInt(“123”);
parseFloat(串)转换为浮点数值型var num=parseFloat(“12.12”);
Number() 强制转换转化为数值型var num=Number(“1312”);

(一)parseInt() 函数转换为数值型

parseInt( )函数可以将字符串中有效的整数内容提取出来,将字符型转换为 数字型的;

parseInt( )函数在解析字符串的时候按照从左到右的顺序

console.log(parseInt('32.1'));  // 3 取整
console.log(parseInt('123aba'));  // 会取到字符串中的整数部分,从左向右
console.log(parseInt('m111px')); // NaN

(二)parseFloat() 函数转换为数值型

parseFloat( ) 函数可以获得有效的小数,并且将字符型转换为数字型。

parseFloat( )函数在解析字符串的时候按照从左到右的顺序,不能解析除了数字以外的文本。

console.log(parseFloat('3.1'));  //3.1
console.log(parseFloat('123bbbb'));  //去掉后面部分,只保留数字
console.log(parseFloat('m123ccc'));  //NaN
  • 如果对非String类型数据使用parseInt( ) 或是parseFloat( ) ,它会现将其转化为String,然后再进行操作。

  • 由于 parseInt( ) 或是parseFloat( ) 无法解析非数字类型的字符,所以输出 NaN,但是数据类型还是变为 number 数字类型。

(三)使用Number() 函数(强制转换)

调用 Number() 函数使其他类型的数据转换成数值型

1、当需要转换的字符串引号引的不是数字

var abc=Number('this one');
console.log(abc);console.log(typeof abc);

2、字符串→Number 转换情况:

- 如果是纯数字的字符串,直接将其转换为数字;

- 如果字符串中有非数字内容,则转换为NAN(Not A Number);

- 如果字符串是一个空串或是一个全部由空格组成的字符串,则转换为0。

3、Boolean值→Number 转换情况:

- 如果是true,转换为1;

- 如果是false,转换为0。

4、null值→Number 转换情况:

如果是null(空值),转换为0。

5、undefined→Number 转换情况:

如果是undefined,转换为NAN(Not A Number)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值