首页 > JavaScript > JavaScript 类型转换(上)

JavaScript 类型转换(上)

来源:原创 作者:thomas 分类:JavaScript 阅读:906 日期:2015-11-20

Number() 用来转换数字, String() 用来转换字符串, Boolean() 用来转换布尔值。

JavaScript 数据类型

JavaScript中能够容纳值的数据类型有五种:

· string

· number

· boolean

· object

· function

其中对象类型又分为三种:

· Object

· Date

· Array

另外两种为不能容纳值的数据类型:

· null

· undefined

typeof 操作符

你可以使用typeof操作符来查看JavaScript变量的数据类型。

示例

typeof "John"                 // 返回 string 
typeof 3.14                   // 返回 number
typeof NaN                    // 返回 number
typeof false                  // 返回 boolean
typeof [1,2,3,4]              // 返回 object
typeof {name:'John', age:34}  // 返回 object
typeof new Date()             // 返回 object
typeof function () {}         // 返回 function
typeof myCar                  // 返回 undefined (如果myCar未声明)
typeof null                   // 返回 object

注意:

· NaN 的数据类型为number

· 数组的数据类型为object

· 日期的数据类型为object

· null的数据类型为object

· 未声明变量的数据类型为undefined

typeof 的数据类型

typeof 操作符并非变量。 因为它是一个操作符。同样,操作符( + - * / ) 没有任何数据类型。

typeof的返回值是字符串。

constructor属性

constructor 属性返回所有JavaScript变量的构造函数。

示例

"John".constructor                 // 返回函数String()
(3.14).constructor                 // 返回函数Number()
false.constructor                  // 返回函数Boolean()
[1,2,3,4].constructor              // 返回函数Array()
{name:'John', age:34}.constructor  // 返回函数 Object()
new Date().constructor             // 返回函数 Date()
function () {}.constructor         // 返回函数 Function()

你可以通过检查constructor属性以判断某个对象类型是否是Array (包含关键字"Array")

示例

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}

同样,你也可以通过检查constructor属性以判断某个对象类型是否是Date (包含关键词"Date")

示例

function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;
}

JavaScript 类型转换

JavaScript变量可以被转换为另外一种数据类型的新变量 

· 使用JavaScript函数的方式

· JavaScript的自动转换机制

转换NumbersStrings

全局方法String() 可以转换numbersstrings.

该函数可以使用在任意类型的数字、字面量、变量或表达式:

示例

String(x)         // 返回从变量x转换来的字符串
String(123)       // 返回从字面量123转换来的字符串
String(100 + 23)  // 返回从表达式转换来的字符串

Number对象的toString() 方法也可以达到同样效果。

示例

x.toString()
(123).toString()
(100 + 23).toString()

转换 Booleans  Strings

全局方法String() 也可以转换 booleans  strings.

String(false)        // 返回"false"
String(true)         // 返回"true"

Boolean 对象的toString() 方法也可以达到同样效果。

false.toString()     // 返回"false"
true.toString()      // 返回"true"

转换Dates  Strings

全局方法String() 也可以转换dates  strings

String(Date())      // 返回Jul 17 2014 15:38:19 GMT+0200 

Date对象toString() 方法也可以达到同样效果。

示例

Date().toString()   // 返回 Jul 17 2014 15:38:19 GMT+0200 

转换 Strings  Numbers

全局方法 Number() 可以转换 strings  numbers

包含数字的字符串( "3.14") 可以被转换为数字 (3.14).

空字符串被转换为 0

其他值被转换为NaN (Not a number).

Number("3.14")    // 返回3.14
Number(" ")       // 返回
Number("")        // 返回0
Number("99 88")   // 返回NaN

一元操作符 + 

+操作符可以用来转换一个变量为数字:

示例

var y = "5";      // y 是字符串类型
var x = + y;      // x 是数字类型

如果变量不能被转换,仍可转换为数字类型,但是值是NaN (Not a number):

示例

var y = "John";   // y 是字符串类型
var x = + y;      // x 是数字类型,值是NaN

 

热门文章 更多>

微信扫一扫,关注技术十日谈