写javascirpt代码时,typeof和instanceof这两个操作符时不时就会用到,堪称必用。但是!使用它们总是不能直接的得到想要的结果,非常纠结,普遍的说法认为“这两个操作符或许是javascript中最大的设计缺陷,因为几乎不可能从他们那里得到想要的结果” typeof 说明:typeof返回一个表达式的数据类型的字符串,返回结果为js基本的数据类型,包括number,boolean,string,object,undefined,function。 从说明来看,貌似没什么问题。 下面的代码写了一个数值变量,typeof后的结果是"number"。 如果用Number类型的构造函数new一个变量的话,typeof后的结果是"object"。 上面的这两个输出结果看似没啥问题,这一点从书上看来是理所当然的事情,因为javascript就是这么设计的。 但是!问题就在于既然调用了typeof就应该准确返回一个变量的类型,不管是直接用值创建的还是用类型的构造函数创建的,否则!我还用你做啥! 那么对于: a和b变量的类型准确的说来都应该是Number才是想要的结果。 而准确的类型信息保存在变量的内部属性 [[Class]] 的值中,通过使用定义在 Object.prototype 上的方法 toString来获取。 获取类型信息: 输出: 是不是已经很直接了,我们稍微处理一下,得到直接结果: 输出: Number Number 这就是想要的结果。 为了更好的使用,我们封装一个方法,用来判断某个变量是否是某种类型: 定义一些变量做过测试,先来看看它们的typeof输出: 我们再用新作的函数是一下: 注:typeof也不是无用,实际用处是用来检测一个变量是否已经定义或者是否已经赋值。 instanceof 说明:判断一个对象是否为某一数据类型,或一个变量是否为一个对象的实例。 instanceof 操作符用来比较两个内置类型的变量时一样力不从心,同样会对结果不满意。 只有在比较自定义的对象时才准确反映关系。
推荐整理分享javascript之typeof、instanceof操作符使用探讨,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
深入理解javaScript中的事件驱动 javascript中的事件驱动是通过鼠标或热键的动作引发的主要事件如下:1、鼠标单击事件onclick如:(inputtype="button"value="鼠标单击"onclick="执行语句.处理"/)通
JavaScript事件处理器中的event参数使用介绍 在大部分浏览器中,当一个事件处理器被触发时,名为Event的类实例会作为第一个参数传入处理器中。而一直占据主流地位的ie却以自己专的方式行事,
window.open参数详解附实例 一、window.open()支持环境:JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+二、windown.open基本语法:window.open(pageURL,name,parameters)其中:pageURL为子窗口路径name为子窗口