您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
一纸荒年 发布于2019年12月05日 00:03

原创 JavaScript类型转换

61 次浏览 读完需要≈ 19 分钟 JavaScript

内容目录

JavaScript 数据类型

JavaScript 中有五种可包含值的数据类型:

  • 字符串(string)
  • 数字(number)
  • 布尔(boolean)
  • 对象(object)
  • 函数(function)

有三种对象类型:

  • 对象(Object)
  • 日期(Date)
  • 数组(Array)

同时有两种不能包含值的数据类型:

  • null
  • undefined

typeof 运算符

您可以使用 typeof 运算符来确定 JavaScript 变量的数据类型。

typeof "codeplayer"           // 结果 "string"
typeof 3.14                   // 结果 "number"
typeof NaN                    // 结果 "number"
typeof false                  // 结果 "boolean"
typeof [1,2]                  // 结果 "object"
typeof {name:'player', age:12}  // 结果 "object"
typeof new Date()             // 结果 "object"
typeof function () {}         // 结果 "function"
typeof name                  // 结果 "undefined"
typeof null                  // 结果 "object"

未定义或者尚未赋值的变量的数据类型是 undefined

JavaScript 类型转换

JavaScript 变量能够被转换为新变量以及另一种数据类型:

  • 通过使用 JavaScript 函数
  • 通过 JavaScript 本身自动转换

把数值转换为字符串

它可用于任意类型的数字、文字、变量或表达式:

String(x)         // 从数值变量 x 返回字符串
String(1)       // 从数值文本 1 返回字符串
String(10 + 1)  // 从表达式中的数值返回字符串
// toString() 同理
x.toString()  // 从数值变量 x 返回字符串
(1).toString() // 从数值文本 1 返回字符串
(10 + 1).toString() // 从表达式中的数值返回字符串

toExponential()

返回字符串值,它包含已被四舍五入并使用指数计数法的数字。

var x = 3.1415;
x.toExponential(2);     // 返回 3.14e+0
x.toExponential(4);     // 返回 3.1415e+0
x.toExponential(6);     // 返回 3.141500e+0

toFixed()

toFixed() 返回字符串值,它包含了指定位数小数的数字:

var x = 3.1415;
x.toExponential(0);     // 返回 3
x.toExponential(2);     // 返回 3.14
x.toExponential(3);     // 返回 3.142
x.toExponential(5);     // 返回 3.14150

toPrecision()

toPrecision() 返回字符串值,它包含了指定长度的数字:

var x = 3.1415;
x.toExponential();     // 返回 3.1415
x.toExponential(2);     // 返回 3.1
x.toExponential(4);     // 返回 3.142
x.toExponential(5);     // 返回 3.14150

把变量转换为数值

这三种 JavaScript 方法可用于将变量转换为数字:

  • Number() 方法
  • parseInt() 方法
  • parseFloat() 方法

Number()

Number(true);         // 返回 1
Number(false);        // 返回 0
Number(new Date());   // 返回 1504161026645
Number("22");         // 返回 22
Number("string");     // 返回 NaN
Number(" ")           // 返回 0
Number("")            // 返回 0

parseInt()

parseInt("3");         // 返回 3
parseInt("3.14");      // 返回 3
parseInt("3 4 5");     // 返回 3
parseInt("3 day");     // 返回 3
parseInt("day 3");     // 返回 NaN

parseFloat()

parseFloat("3");         // 返回 3
parseFloat("3.14");      // 返回 3.14
parseFloat("3 4 5");     // 返回 3
parseFloat("3 day");     // 返回 3
parseFloat("day 3");     // 返回 NaN

把日期转换为字符串

方法 描述
getDate() 获得以数值计(1-31)的日
getDay() 或者以数值计(0-6)的周
getFullYear() 获得四位的年(yyyy)
getHours() 获得时(0-23)
getMilliseconds() 获得毫秒(0-999)
getMinutes() 获得分钟(0-59)
getMonth() 获得月(0-11)
getSeconds() 获得秒(0-59)
getTime() 获得时间(1970 年 1 月 1 日以来的毫秒)
var strTime = "2019-05-20"; //字符串日期格式           
var date = new Date(Date.parse(strTime.replace(/-/g,   "/"))); //转换成Data();

var month = date.getMonth() + 1; //获取当前月份

自动类型转换

如果 JavaScript 尝试操作一种“错误”的数据类型,它会试图将该值转换为“正确”的类型。

1 + null    // 返回 1         因为 null 被转换为 0
"1" + null  // 返回 "1null"   因为 null 被转换为  "null"
"1" + 2     // 返回 12        因为 2 被转换为 "2"
"1" - 2     // 返回 -1        因为 "1" 被转换为 1
"1" * "2"   // 返回 2         因为 "1" 和 "2" 被转换为 1 和 2

JavaScript 类型转换表

下表中列出了将不同 JavaScript 值转换为数字、字符串和布尔的结果:

原始值 转换值 转换为字符串 转换为逻辑
false 0 "false" false
true 1 "true" true
0 0 "0" false
1 1 "1" true
"0" 0 "0" true
"000" 0 "000" true
"1" 1 "1" true
NaN NaN "NaN" false
Infinity Infinity "Infinity" true
-Infinity -Infinity "-Infinity" true
"" 0 "" false
"20" 20 "20" true
"twenty" NaN "twenty" true
[ ] 0 "" true
[20] 20 "20" true
[10,20] NaN "10,20" true
["twenty"] NaN "twenty" true
["ten","twenty"] NaN "ten,twenty" true
function(){} NaN "function(){}" true
{ } NaN "[object Object]" true
null 0 "null" false
undefined NaN "undefined" false
  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论