javascript ECMAScript类型判断

JS中的变量是松散类型(即弱类型)的,可以用来保存任何类型的数据。

typeof   一元操作  判断是原生类型还是对象类型时候用

typeof 可以用来检测给定变量的数据类型,可能的返回值:

1. ‘undefined‘ --- 这个值未定义;

2. ‘boolean‘    --- 这个值是布尔值;

3. ‘string‘        --- 这个值是字符串;

4. ‘number‘     --- 这个值是数值;

5. ‘object‘       --- 这个值是对象或null;

6. ‘function‘    --- 这个值是函数。

var aa = new Array(3);
document.write(typeof a);  // undefined
document.write(typeof aa); // Object

但 typeof 的能力有限,其对于Date、RegExp类型返回的都是"object"。如:

typeof {}; // "object"
typeof []; // "object"
typeof new Date(); // "object" 

instanceof  判断是那种类型  左边操作符必须为对象

var aa = new Array(3);
alert(aa instanceof Array);  // true

可以以此判断对象是否是数组类型,另,isArray()方法,可以直接判断是否为数组

var aa = new Array(3);
aa.isArray();

constructor 属性

constructor 属性返回对创建此对象的数组函数的引用。

在Javascript语言中,constructor属性是专门为function而设计的,它存在于每一个function的prototype属性中。这个constructor保存了指向function的一个引用。在定义一个函数(代码如下所示)时,  
function F() {  // some code  } 
? JavaScript内部会执行如下几个动作:为该函数添加一个原形(即prototype)属性 
? 为prototype对象额外添加一个constructor属性,并且该属性保存指向函数F的一个引用 
这样当我们把函数F作为自定义构造函数来创建对象的时候,对象实例内部会自动保存一个指向其构造函数(这里就是我们的自定义构造函数F)的prototype对象的一个属性__proto__,所以我们在每一个对象实例中就可以访问构造函数的prototype所有拥有的全部属性和方法,就好像它们是实例自己的一样。当然该实例也有一个constructor属性了(从prototype那里获得的),这时候constructor的作用就很明显了,因为在这时,每一个对象实例都可以通过constrcutor对象访问它的构造函数,

 var ary = new Array(3);
 ary[0] ="1";
 ary[1] ="1";
 ary[2] ="1";
 ary[3] ="1";
 ary[4] ="1";

 alert(ary.constructor == Array);    // true 
时间: 2024-11-06 07:15:02

javascript ECMAScript类型判断的相关文章

javascript基础类型判断

string类型 var a = "a" typeof a === "string" number类型 let a = 111 typeof a === "number" function类型 var a = function(){} typeof a === "function" undefined类型 var a =undefined typeof a === "undefined" a === und

JavaScript 的类型判断(一)判断真假

摘要: 这篇文章的主要目的是帮助自己梳理 JavaScript 学习和使用中的脉络,大部分内容仅仅是学习内容的整理,而非原创,我会在文章最后贴出参考链接. JavaScript 中有6个值为假 false null undefined '' 0 NaN === 和 == 的区别 ===, 不做类型转换,类型不同的一定不等. 如果类型不同,就[不相等] 类型相同,再判断 ==, 两边值类型不同的时候, 要先进行类型转换, 再比较. 如果两个值类型相同, 进行 === 比较. 如果两个值类型不同,

JavaScript类型判断

JavaScript的数据类型可以分为:标准类型和对象类型. 标准类型有:undefined Null Boolean Date Number Object 对象类型(构造器类型)有:Boolean Date Number Object Array Date Error Function RegExp 用来判断数据类型的一般有四种方式,分别是: 1.typeof 可以识别标准类型(Null除外) 不能识别对象类型(Function除外) 2.Prototype.toString() 可以识别标准

JavaScript根据文件名判断文件类型

//JavaScript根据文件名判断文件类型 var imgExt = new Array(".png",".jpg",".jpeg",".bmp",".gif");//图片文件的后缀名 var docExt = new Array(".doc",".docx");//word文件的后缀名 var xlsExt = new Array(".xls"

【JavaScript】Object.prototype.toString.call()进行类型判断

权声明:本文为博主原创文章,未经博主允许不得转载. [javascript] view plain copy print? op = Object.prototype, ostring = op.toString, ... function isFunction(it) { return ostring.call(it) === '[object Function]'; } function isArray(it) { return ostring.call(it) === '[object A

JavaScript - 数值类型的判断与常用转换方式

主要参考: isNaN() - JavaScript | MDN Number.isNaN() - JavaScript | MDN parseInt() - JavaScript | MDN parseFloat() - JavaScript | MDN 数值类型的判断方法isNaN()和Number.isNaN() 可接受任意参数,用来判断其参数是否为NaN(not a number) 由于把NaN与任何值(包括其自身)相比得到的结果都是false,因此无法通过==或===运算符来判断某个值

JavaScript 学习笔记— —类型判断

//1 判断是否为数组类型 var a=[0]; console.log(isArray(a)); function isArray(obj){ return (typeof obj=='object') && obj.constructor==Array; } console.log("2-----------------------------------") //2 判断是否为字符串类型 console.log(isString('test')); console

《饿了么大前端 Node.js 进阶教程》—Javascript 基础问题—类型判断

lodash的类型判断源码 <饿了么大前端 Node.js 进阶教程>地址:https://github.com/ElemeFE/node-interview  lodash介绍:lodash是目前很流行的JS工具库,它封装了许多JS常用到的工具方法,在阅读源码时,你会发现代码冗长:官网说这是性能优化,不管你信不信,反正我信了! (1)null 类型 function isNull(value) { return value === null; } (2)number类型 function i

JavaScript类型判断详解(Object.prototype.toString.call()方法进行数据类型的可靠判断)

前言 在编写一些类库中,我们经常需要判断一些未知的用户的输入和配置,故而需要进行一系列的类型判断.故而总结下JS是如何进行类型判断的 typeof typeof操作符返回一个字符串,表示未经计算的操作数的类型:该运算符数据类型(返回字符串,对应列表如图) typeof undefined = undefined typeof Null = object typeof Boolean = boolean typeof Number = number typeof String = string t