首页博客网络编程
JavaScript 转换为字符串和其他有用的类型转换
摘要 您可以将 JavaScript 转换为字符串、数字和布尔值。 数组和日期属于对象数据类型。 大多数数据类型包含值,但不包含值。undefinednull typeof是一个运算符,因此它不包含数据类型。

与任何其他编程语言一样,JavaScript 使用数据类型。有字符串数字对象数组等。了解它们各自代表什么并了解如何使用它们可以让您更好地控制正在编写或阅读的代码。

您可能会发现,通过将数据从一种类型转换为另一种类型来作数据很有用。在某些情况下,您可能需要使用 JavaScript 转换为字符串,或者在其他情况下将字符串转换为数字。在本教程中,您将熟悉 JavaScript 类型转换,并学习将每种数据类型转换为不同的数据类型。

内容

JavaScript 类型转换:主要技巧

  • 三种主要类型的转换是 和 。它们将数据转换为各自名称的类型。String()Number()Boolean()

  • 无法使用 来检测 JavaScript 对象的类型是日期还是数组。对于 date 和数组,将返回 的类型。typeofobject

可能的类型

有五种类型的数据能够包含值

  • 数字类型

  • 布尔类型

  • 字符串类型

  • 功能类型

  • 对象类型

还有三种对象类型:

  • 对象类型

  • 日期类型

  • 数组类型

最后,有两种类型不能保存值

  • 未定义类型

  • 空类型

typeof 运算符

typeof当您需要知道 JavaScript 变量中的数据类型时,会使用运算符。在执行任何 JavaScript 类型转换之前,这一点至关重要:

请记住:

  • 数据类型为 。NaNnumber

  • 数组的数据类型是 。object

  • 日期中的数据类型为 。object

  • 的数据类型为 。nullobject

  • 变量的数据类型为 。undefinedundefined

  • 没有值的变量的数据类型是 。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

constructor 属性

此属性带回 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 自动

我们将首先介绍使用函数进行类型转换。每个解释后面都会有一个例子。确保不要跳过这些,因为它们对于掌握某个功能如何工作的想法很重要!

数字到字符串

使用 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.180NaN

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“真”
00"0"
11"1"
"0"0"0"
"1"1"1"
“NaN”
无限无限“无限”
-无限-无限“-无穷大”
""0""
"10"10"10"
“三十”“三十”
[ ]0""
[10]10"10"
[40,50]"40,50"
[“三十”]“三十”
[“五十”,“三十”]“五十,三十”
函数(){}“函数(){}”
{ }“[对象对象]”
0“空”
定义“未定义”

注意:尽量避免将 JavaScript 字符串转换为布尔值,因为它很容易搞砸并产生错误。


声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!

本文链接:https://www.gaoxuejun173.top/blog/310

广告位

本文配乐
来说两句吧

该文章已禁止评论

最新评论

广告位