添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
// 返回 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
  • 数组(Array)的数据类型是 object
  • 日期(Date)的数据类型为 object
  • null 的数据类型是 object
  • 未定义变量的数据类型为 undefined
  • 如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是 返回 object。

    constructor 属性

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

    "John" .constructor // 返回函数 String()  { [native code] }
    ( 3.14 ).constructor // 返回函数 Number()  { [native code] }
    false.constructor // 返回函数 Boolean() { [native code] }
    [ 1 , 2 , 3 , 4 ].constructor // 返回函数 Array()   { [native code] }
    {name: 'John' , age:34}.constructor // 返回函数 Object()  { [native code] }
    new Date().constructor // 返回函数 Date()    { [native code] }
    function () {}.constructor // 返回函数 Function(){ [native code] } 尝试一下 » 你可以使用 constructor 属性来查看对象是否为数组 (包含字符串 "Array"):

    function isArray(myArray) {
    return myArray.constructor.toString().indexOf( "Array" ) > -1 ;
    尝试一下 »

    你可以使用 constructor 属性来查看对象是否为日期 (包含字符串 "Date"):

    function isDate(myDate) {
    return myDate.constructor.toString().indexOf( "Date" ) > -1 ;
    尝试一下 » String(x) // 将变量 x 转换为字符串并返回
    String( 123 ) // 将数字 123 转换为字符串并返回
    String( 100 + 23 ) // 将数字表达式转换为字符串并返回 尝试一下 »

    Number 方法 toString() 也是有同样的效果。

    x.toString()
    ( 123 ).toString()
    ( 100 + 23 ).toString() 尝试一下 »

    Number 方法 章节中,你可以找到更多数字转换为字符串的方法:

    toExponential() 把对象的值转换为指数计数法。 toFixed() 把数字转换为字符串,结果的小数点后有指定位数的数字。 toPrecision() 把数字格式化为指定的长度。 String(new Date()) // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

    Date 方法 toString() 也有相同的效果。

    obj = new Date()
    obj.toString() // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

    Date 方法 章节中,你可以查看更多关于日期转换为字符串的函数:

    getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。 getFullYear() 从 Date 对象以四位数字返回年份。 getHours() 返回 Date 对象的小时 (0 ~ 23)。 getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。 getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。 getMonth() 从 Date 对象返回月份 (0 ~ 11)。 getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。 getTime() 返回 1970 年 1 月 1 日至今的毫秒数。 document.getElementById( "demo" ).innerHTML = myVar;

    myVar = {name:"Fjohn"}  // toString 转换为 "[object Object]"
    myVar = [1,2,3,4]       // toString 转换为 "1,2,3,4"
    myVar = new Date()      // toString 转换为 "Fri Jul 18 2014 09:08:55 GMT+0200"

    数字和布尔值也经常相互转换:

    myVar = 123             // toString 转换为 "123"
    myVar = true            // toString 转换为 "true"
    myVar = false           // toString 转换为 "false"

    下表展示了使用不同的数值转换为数字(Number), 字符串(String), 布尔值(Boolean):

    转换为数字 转换为字符串 转换为布尔值 false "false" false 尝试一下 » "true" 尝试一下 » false 尝试一下 » 尝试一下 » 尝试一下 » "000" "000" 尝试一下 » 尝试一下 » "NaN" false 尝试一下 » Infinity Infinity "Infinity" 尝试一下 » -Infinity -Infinity "-Infinity" 尝试一下 » false 尝试一下 » 尝试一下 » "Runoob" "Runoob" 尝试一下 » 尝试一下 » 尝试一下 » [10,20] "10,20" 尝试一下 » ["Runoob"] "Runoob" 尝试一下 » ["Runoob","Google"] "Runoob,Google" 尝试一下 » function(){} "function(){}" 尝试一下 » "[object Object]" 尝试一下 » "null" false 尝试一下 » undefined "undefined" false 尝试一下 »
  • #0

  •