php外包、微信开发、app开发尽在蓝普!PHP技术服务商

确定一个值的数据类型

现在已经可以体会到js 这门编程语言,已经和PHP不一样了。是有区别的

有三种方法,可以确定一个值到底是什么类型。

  • typeof运算符
  • instanceof运算符
  • Object.prototype.toString方法

instanceof运算符和Object.prototype.toString方法,现在还没有学习。这里先学typeof运算符。

typeof运算符可以返回一个值的数据类型。

数值、字符串、布尔值分别返回numberstringboolean

 

typeof 123 // "number"
typeof '123' // "string"
typeof false // "boolean"

函数返回function

function f() {}
typeof f
// "function"

这里和PHP有点区别。函数在js里可以当做值来用。

undefined返回undefined

typeof undefined
// "undefined"


利用这一点,typeof可以用来检查一个没有声明的变量,而不报错。

v
// ReferenceError: v is not defined

typeof v
// "undefined"

上面代码中,变量v没有用var命令声明,直接使用就会报错。但是,放在typeof后面,就不报错了,而是返回undefined

实际编程中,这个特点通常用在判断语句。

// 错误的写法
if (v) {
  // ...
}
// ReferenceError: v is not defined

// 正确的写法
if (typeof v  "undefined") {
  // ...
}

对象返回object

typeof window // "object"
typeof {} // "object"
typeof [] // "object"

上面代码中,空数组([])的类型也是object,这表示在 JavaScript 内部,数组本质上只是一种特殊的对象。这里顺便提一下,instanceof运算符可以区分数组和对象。instanceof运算符还没有学习到。

var o = {};
var a = [];

o instanceof Array // false
a instanceof Array // true

null返回object

`typeof null // "object"

null的类型是object,这是由于历史原因造成的。1995年的 JavaScript 语言第一版,只设计了五种数据类型(对象、整数、浮点数、字符串和布尔值),没考虑null,只把它当作object的一种特殊值。后来null独立出来,作为一种单独的数据类型,为了兼容以前的代码,typeof null返回object就没法改变了。

今天就学习到这里吧




 




标签:, ,

转载请注明来源蓝普网络并以链接形式标明本文地址
本文链接: http://www.wbphp.cn/html/y03/14833.html

作者:胡, 金乐 | 日期:2018-03-10 | 分类:新闻中心 | 评论:0 条 | 浏览:4


上一篇:
下一篇:

发表评论

*

* 以便邮件回复


给我汇款 | 合作流程 | 看看我们 | 加入我们 Copyright 2008-2016 php外包与洛阳php培训服务商. Some Rights Reserved. 豫ICP备12025288号-1