js 数据类型转换

本文详细介绍了JavaScript中的typeof运算符及转换数据类型的方法,如toString()将其他类型转为字符串,Number()和parseInt/parseFloat处理数值和浮点数,以及Boolean()用于布尔类型转换。
摘要由CSDN通过智能技术生成

1.1 typeof运算符

typeof 运算符可以查询数据类型:
  • 其返回可能值有:undefinedbooleannumberstringobject以及function.
  • 可以使用typeof(变量名)查询数据类型
var age = 18;
console.log(typeof age); // 'number'
console.log(typeof(age));

1.2 转换成字符串类型

  • toString()
var str = "Hello World";
var num = 120.2;
var n = null;
var un;
var bl = true;
var arr = [1,2,3,5];
var obj = {name:"张三"};
function fn1(){}

// 把数值转换为字符串类型
console.log(typeof num.toString())

// 把空类型转换为字符串类型
// Cannot read property 'toString' of null 空类型没有这个方法
// console.log(typeof n.toString());

// 把未定义类型转换为字符串类型
// Cannot read property 'toString' of undefined 未定义类型没有这个方法
// console.log(un.toString())

// 把布尔、数组、对象、函数转换为字符串类型
console.log(typeof bl.toString());
console.log(typeof arr.toString());
console.log(typeof String(obj));
console.log(typeof fn1.toString()); //通过这行代码,我们可以得出结论: 函数也是对象
  • String()
// String()函数存在的意义:有些值没有toString(),这个时候可以使用String()。比如:
undefined和null
var num = 18;
var isRight = true;
console.log(String(num));
console.log(String(isRight));

var a = null;
console.log(typeof String(a));
  • 拼接字符串方式

num + "",当 + 两边一个操作符是字符串类型,一个操作符是其它类型的时候,会先把其它类型转

换成字符串再进行字符串拼接,返回字符串

1.3 转换成数值类型

  • Number()
// Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN

// 1 Number()
var str = 'abc'; // Number(str) -》 NaN
var isRight = true; // Number(isRight) -> 1

console.log(Number(str)); //NaN
console.log(Number(isRight)); //1

console.log(Number('123')); //123
// Number() 把字符串转换成数值类型的时候,如果字符串中有一个字符不是数字,返回NaN
console.log(Number('123abc')); //NaN
  • parseInt()
var str = '123';
var isRight = false;

console.log(parseInt(str)); //123
// parseInt 无法把布尔类型转换成数值类型 返回的结果是NaN
console.log(parseInt(isRight)); //NaN

//var s1 = 'abc'; // parseInt(s1) -> NaN
var s1 = '123abc';
// parseInt 在转换字符串的时候,如果遇到数字就会转换数字,如果遇到非数字就会返回
console.log(parseInt(s1)); //123

var s2 = 'abc123'; // 如果字符串中第一个字符是非数字 此时返回NaN
console.log(parseInt(s2)); //NaN
  • parseFloat()
var str = '123.67';
var isRight = true;
console.log(parseFloat(str)); //123.67
console.log(parseInt(str)); // 123
console.log(parseFloat(isRight)); // parseFloat 无法转换布尔类型 返回的是NaN

var str = '123.12abc';
console.log(parseFloat(str)); //123.12

var str = '123abc';
console.log(parseFloat(str)); //123

parseFloat()把字符串转换成浮点数
parseFloat()和parseInt非常相似,不同之处在与parseFloat()可以得到浮点值
  • +-0等运算
var str = '500';
console.log(+str); // 取正
console.log(-str); // 取负
console.log(str - 0);

1.4 转换成布尔类型

Boolean():
将各种类型的值转化成 Boolean 类型的规则如下:
  • Number:任意非0的数值为true0值和NaN"false"
  • String:所有的非空字符串转化为 true;""(空字符串)转化成false
  • Object的任何非空对象都会转化为 true;
  • javascript中,只要逻辑表达式不返回undefined不返回null,就都是真的。

: 通常和流程控制语句结合使用
0 ''( 空字符串 ) null undefined NaN 会转换成 false 其它都会转换成 true
var str1 = "Hello World";
var str2 = "";
var num = 120.2;
var n = null;
var un;
var bl = true;
var arr = [];
var obj = {};
// function fn1(){}


// 任何非空字符串都转换为true,空字符串转换为false
console.log(Boolean(str1)); // true
console.log(Boolean(str2)); // false

// 任何非空字符串都转换为true,空字符串转换为false
console.log(Boolean(str1)); // true
console.log(Boolean(str2)); // false

// 对象和数组都转换为true
console.log(Boolean(arr));
console.log(Boolean(obj));

// Null和Undefined都转换为false
console.log(Boolean(n));
console.log(Boolean(un));

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值