js 如何判断变量的数据类型

JavaScript015

js 如何判断变量的数据类型,第1张

JS只有Number而没有Float,数字全是Number

<script>

function isNumeric(v)

{

return (v &&v.constructor == Number)

}

function isDate(v)

{

return (v &&v.constructor == Date)

}

alert(isNumeric(0.333))

alert(isDate(new Date()))

</script>

或者用typeof也可以。 但注意typeof的时候,只要是复杂类型,如Array, Date全都会返回"object"

//参考代码function checkDate(obj){ var strDate=obj.value//获取对象的值 re=/^(\d{4})(\d{2})(\d{2})$/g//正则表达式 if(re.test(strDate))//判断日期格式符合YYYY-MM-DD { alert("right")//是日期,弹出“right” }}

typeof 是一个操作符,其右侧跟一个一元表达式,并返回这个表达式的数据类型。返回的结果用该类型的字符串(全小写字母)形式表示,包括以下 7 种:number、boolean、symbol、string、object、undefined、function 等。

有些时候,typeof 操作符会返回一些令人迷惑但技术上却正确的值:

对于基本类型,除 null 以外,均可以返回正确的结果。

对于引用类型,除 function 以外,一律返回 object 类型。

对于 null ,返回 object 类型。

对于 function 返回  function 类型。

其中,null 有属于自己的数据类型 Null , 引用类型中的 数组、日期、正则 也都有属于自己的具体类型,而 typeof 对于这些类型的处理,只返回了处于其原型链最顶端的 Object 类型,没有错,但不是我们想要的结果。