如何判断js中的数据类型:typeof、instanceof、 constructor、 prototype方法比较
如何判断js中的类型呢,先举几个例子:
var a = "iamstring";
var b = 222;
var c= [1,2,3];
var d = new Date();
var e =
function(){alert(111);};
var f =
function(){thisname="22";};
最常见的判断方法:typeof
alert(typeof a)
------------> string
alert(typeof b)
------------> number
alert(typeof c)
------------> object
alert(typeof d)
------------> object
alert(typeof e)
------------> function
alert(typeof f)
------------> function
其中typeof返回的类型都是字符串形式,需注意,例如:
alert(typeof a == "string")
-------------> true
alert(typeof a == String)
---------------> false
另外typeof
可以判断function的类型;在判断除Object类型的对象时比较方便。
判断已知对象类型的方法: instanceof
alert(c instanceof Array)
---------------> true
alert(d instanceof
Date)
alert(f instanceof Function)
------------> true
alert(f instanceof function)
------------> false
注意:instanceof
后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。
根据对象的constructor判断:
constructor
alert(cconstructor ===
Array) ----------> true
alert(dconstructor === Date)
-----------> true
alert(econstructor ===
Function) -------> true
注意: constructor 在类继承时会出错
eg,
function A(){};
function B(){};
Aprototype = new B(); //A继承自B
var aObj = new A();
alert(aobjconstructor === B) ----------->
true;
alert(aobjconstructor === A) ----------->
false;
而instanceof方法不会出现该问题,对象直接继承和间接继承的都会报true:
alert(aobj instanceof B) ---------------->
true;
alert(aobj instanceof B) ---------------->
true;
言归正传,解决construtor的问题通常是让对象的constructor手动指向自己:
aobjconstructor = A;
//将自己的类赋值给对象的constructor属性
alert(aobjconstructor === A) ----------->
true;
alert(aobjconstructor === B) ----------->
false; //基类不会报true了;
通用但很繁琐的方法: prototype
alert(ObjectprototypetoStringcall(a) === ‘[object String]’)
-------> true;
alert(ObjectprototypetoStringcall(b) === ‘[object Number]’)
-------> true;
alert(ObjectprototypetoStringcall(c) === ‘[object Array]’)
-------> true;
alert(ObjectprototypetoStringcall(d) === ‘[object Date]’)
-------> true;
alert(ObjectprototypetoStringcall(e) === ‘[object Function]’)
-------> true;
alert(ObjectprototypetoStringcall(f) === ‘[object Function]’)
-------> true;
大小写不能写错,比较麻烦,但胜在通用。
通常情况下用typeof
代码示例:
documentgetElementById("id")innerHTML //获取文本的内容;
documentgetElementById("id")value //获取文本框的内容;
function getValue(){
var input=documentgetElementById("myId");//通过id获取文本框对象
alert(inputvalue);//通过文本框对象获取value值
}
扩展资料:
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
是一种解释性脚本语言(代码不进行预编译)。 [4]
主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。 [4]
可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。 [4]
跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理
参考资料:
以上就是关于如何获取JS变量类型全部的内容,包括:如何获取JS变量类型、用JS怎样获取文本框的值、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)