JavaScript数据类型转换
1、使用 typeof 操作符来查看 JavaScript 变量的数据类型
console.log(typeof "John" ); // 返回 string
console.log(typeof 3.14 ); // 返回 number
console.log(typeof NaN ); // 返回 number
console.log(typeof false ); // 返回 boolean
console.log(typeof [1,2,3,4] ); // 返回 object
console.log(typeof {name:'John', age:34} ); // 返回 object
console.log(typeof new Date() ); // 返回 object
console.log(typeof function () {} ); // 返回 function
console.log( typeof myCar ); // 返回 undefined (如果 myCar 没有声明)
console.log( typeof null ); // 返回 object
2、将数字转换为字符串
var x=1;
var a=String(x) // 将变量 x 转换为字符串并返回
var b=String(123) // 将数字 123 转换为字符串并返回
var c=String(100 + 23) // 将数字表达式转换为字符串并返回
console.log(typeof a); // 查看变量a的数据类型
3、将布尔类型转为字符串
//第一种:全局方法 String() 可以将布尔值转换为字符串。
var d=String(false) // 返回 "false"
var e=String(true) // 返回 "true"
console.log(typeof d) // 查看变量a的数据类型
//第二种: toString()方法
var f=false.toString();
console.log(typeof f);
4、将日期转换为字符串
//Date() 返回字符串。
console.log(Date())
//全局方法 String() 可以将日期对象转换为字符串。
console.log(String(new Date()) );
//Date 方法 toString() 也有相同的效果。
obj = new Date()
console.log(obj.toString());
5、将字符串转为数字
全局方法 Number() 可以将字符串转换为数字。
字符串包含数字(如 “3.14”) 转换为数字 (如 3.14).
空字符串转换为 0。
其他的字符串会转换为 NaN (不是个数字)。
console.log(Number("3.14")); // 返回 3.14
console.log(Number(" ")); // 返回 0
console.log(Number("")); // 返回 0
console.log(Number("99 88")); // 返回 NaN
6、将布尔值转为数字
console.log(Number(false)); // 返回 0
console.log(Number(true)); // 返回 1
7、将日期转换为数字
d = new Date();
console.log(Number(d)); // 返回 1622188224215:表示的是当前日期和时间的毫秒数
/*日期方法 getTime() 也有相同的效果。*/
d = new Date();
console.log(d.getTime()); // 返回当前日期和时间的毫秒数
8、自动转换类型
/*当 JavaScript 尝试操作一个 "错误" 的数据类型时,会自动转换为 "正确" 的数据类型。*/
var o=5 + null // 返回 5 null 转换为 0
var p="5" + null // 返回"5null" null 转换为 "null"
var q="5" + 1 // 返回 "51" 1 转换为 "1"
var r="5" - 1 // 返回 4 "5" 转换为 5
console.log(typeof o);
console.log(typeof p);
console.log(typeof q);
console.log(typeof r);
9、自动类型转换
/*当你尝试输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString() 方法:*/
var myVar;
myVar = {name:"Fjohn"} // toString 转换为 "[object Object]"
console.log(typeof myVar);
myVar = [1,2,3,4] // toString 转换为 "1,2,3,4"
console.log(typeof myVar);
myVar = new Date() // toString 转换为 "Fri Jul 18 2014 09:08:55 GMT+0200"
console.log(typeof myVar);
/*数字和布尔值也经常相互转换:*/
myVar = 123 // toString 转换为 "123"
console.log(typeof myVar);
myVar = true // toString 转换为 "true"
console.log(typeof myVar);
myVar = false // toString 转换为 "false"
console.log(typeof myVar);