首页博客网络编程
与任何其他编程语言一样,JavaScript 使用数据类型。有字符串、数字、对象、数组等。了解它们各自代表什么并了解如何使用它们可以让您更好地控制正在编写或阅读的代码。
您可能会发现,通过将数据从一种类型转换为另一种类型来作数据很有用。在某些情况下,您可能需要使用 JavaScript 转换为字符串,或者在其他情况下将字符串转换为数字。在本教程中,您将熟悉 JavaScript 类型转换,并学习将每种数据类型转换为不同的数据类型。
三种主要类型的转换是 和 。它们将数据转换为各自名称的类型。String()
Number()
Boolean()
无法使用 来检测 JavaScript 对象的类型是日期还是数组。对于 date 和数组,将返回 的类型。typeof
object
有五种类型的数据能够包含值:
数字类型
布尔类型
字符串类型
功能类型
对象类型
还有三种对象类型:
对象类型
日期类型
数组类型
最后,有两种类型不能保存值:
未定义类型
空类型
typeof
当您需要知道 JavaScript 变量中的数据类型时,会使用运算符。在执行任何 JavaScript 类型转换之前,这一点至关重要:
请记住:
数据类型为 。NaN
number
数组的数据类型是 。object
日期中的数据类型为 。object
的数据类型为 。null
object
变量的数据类型为 。undefined
undefined
没有值的变量的数据类型是 。undefined
例
typeof "Joe" // Returns "string" typeof 4 // Returns "number"typeof NaN // Returns "number"typeof false // Returns "boolean"typeof [4,3,2,1] // Returns "object"typeof {name:'Joe', age:45} // Returns "object"typeof new Date() // Returns "object"typeof function () {} // Returns "function"typeof phone // Returns "undefined"typeof null
此属性带回 JavaScript 中所有变量的函数:constructor
例
"Bob".constructor (4.17).constructor true.constructor [1,2,3,4,5].constructor {name:'Bob',age:28}.constructor new Date().constructor function () {}.constructor
它可用于找出对象类型(数组和日期):
例
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
例
function isDate(date) { return date.constructor.toString().indexOf("Date") > -1; }
JavaScript 中的变量可以更改为不同的变量和数据类型:
通过使用 JavaScript 函数
通过 JavaScript 自动
我们将首先介绍使用函数进行类型转换。每个解释后面都会有一个例子。确保不要跳过这些,因为它们对于掌握某个功能如何工作的想法很重要!
使用 JavaScript 修改数字很容易 转换为字符串功能 使用该方法。您可以将其用于各种类型的表达式、文字、变量或数字:String()
例
String(z) // brings back a string from a number variable zString(321) // brings back a string from a number literal 321String(300 + 23) // brings back a string from a number from an expression
要转换为字符串,也可以使用 JavaScript 方法:toString()
例
z.toString() (321).toString() (300 + 21).toString()
您可以使用以下方法使用 JavaScript 转换为字符串功能来修改布尔值:String()
例
String(false) // brings back "false"String(true) // brings back "true"
同样,转换为字符串 JavaScript 方法可能会派上用场:toString()
例
false.toString() // brings back "false"true.toString() // brings back "true"
您可以使用以下方法使用 JavaScript 转换为字符串功能更改日期:String()
例
String(Date()) // brings back "Thu Aug 107 2017 14:37:20 GMT+0100 (E. Europe Daylight Time)"
ToString()
可以用同样的方式使用:
例
Date().toString() // brings back "Thu Aug 07 2017 14:34:20 GMT+0200 (E. Europe Daylight Time)"
将字符串更改为数字时,我们使用该方法。Number()
带有 的字符串将更改为 .内部没有任何内容的字符串将更改为 。其他所有内容都更改为:"3.18"
3.18
0
NaN
例
Number("3.18") // brings back 3.18Number(" ") // brings back 0 Number("") // brings back 0Number("22 44") // brings back NaN
当将变量更改为数字时,我们使用一元 + 运算符:
例
var z = "4"; // z is a stringvar d = + z; // d is a number
无法更改的变量显示为数字:NaN
例
var z = "Bob"; // z is a stringvar d = + d; // d is a number (NaN)
要在布尔值上执行 JavaScript 转换为数字,我们可以使用以下方法:Number()
例
Number(false) // returns 0Number(true) // returns 1
在日期执行 JavaScript 转换为数字时,我们使用方法:Number()
例
e = new Date();Number(e)
getTime()
还可以用于:
例
date = new Date(); date.getTime()
正如我们上面提到的,JavaScript 中也会自动发生一些更改。让我们注意一下,好吗?
当类型错误时,JavaScript 往往会更改它正在处理的数据类型的值。有时它会给出不同的结果:
例
2 + null // brings back 2 because null is changed to 0"2" + null // brings back "2null" because null is changed to "null""2" + 1 // brings back 22 because 1 is changed to "1""2" - 1 // brings back 1 because "2" is changed to 2"2" * "4" // brings back 8 because "2" and "4" are changed to 2 and 4
在输出变量或对象时,JavaScript 默认调用变量的函数:toString()
例
{name:"Fbob"}.toString() // toString changes to "[object Object]"[1,2,3,4,5].toString() // toString changes to "1,2,3,4,5"new Date().toString() // toString changes to "Thu Aug 07 2017 14:54:55 GMT+0200"
它可能不清晰可见,但布尔值和数字也会发生变化:
例
var number = 123; number.toString() // toString changes to "323"true.toString() // toString changes to "true"false.toString() // toString changes to "false"
将所有数据集中在一个地方以便于参考总是更方便,对吧?尤其是当它有很多的时候。我们完全同意!
在下表中,我们可以看到布尔值、字符串和数字的变化。请注意,如果我们将 JavaScript 字符串更改为布尔值会发生什么,因为我们没有用单独的示例来介绍它:
原始值 | 更改为 Numbers | 更改为字符串 | 更改为布尔值 |
---|---|---|---|
假 | 0 | “假” | 假 |
真 | 1 | “真” | 真 |
0 | 0 | "0" | 假 |
1 | 1 | "1" | 真 |
"0" | 0 | "0" | 真 |
"1" | 1 | "1" | 真 |
南 | 南 | “NaN” | 假 |
无限 | 无限 | “无限” | 真 |
-无限 | -无限 | “-无穷大” | 真 |
"" | 0 | "" | 假 |
"10" | 10 | "10" | 真 |
“三十” | 南 | “三十” | 真 |
[ ] | 0 | "" | 真 |
[10] | 10 | "10" | 真 |
[40,50] | 南 | "40,50" | 真 |
[“三十”] | 南 | “三十” | 真 |
[“五十”,“三十”] | 南 | “五十,三十” | 真 |
函数(){} | 南 | “函数(){}” | 真 |
{ } | 南 | “[对象对象]” | 真 |
零 | 0 | “空” | 假 |
定义 | 南 | “未定义” | 假 |
注意:尽量避免将 JavaScript 字符串转换为布尔值,因为它很容易搞砸并产生错误。
声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!
广告位
广告位