本文由 发布,转载请注明出处,如有问题请联系我们! 发布时间: 2021-08-01js类型判断的方法-JS的基本类型共有三种
加载中今日,我将共享分辨JavaScript种类的三种方式:typeof,instanceof和constructor。
最先查询全部基本数据类型:
空值(null)未定义(undefined)布尔值(boolean)数据(number)字符串数组(string)目标 (object)标记(symbol, ES6中增加)大整数金额(BigInt, ES2020 引进)除开目标,大家通称别的基本上种类,最终二种是新引进的前面基本数据类型。
Symbol:是ES6中引进的原始记录种类,意味着一个唯一的值。
BigInt:是ES2020发布的一种新的基本数据类型,用以处理JavaScript中的数据只有做到53个二进制位的难题(JavaScript中的全部数据都储存为64位浮点型,超过这一范畴内的整数金额,没法精确表明。实际主视图:新基本数据类型-bigint。
1 .种类
实例:
console.log(typeof "); // stringconsole.log(typeof 1 ); // numberconsole.log(typeof NaN ); // numberconsole.log(typeof true); // booleanconsole.log(typeof undefined); // undefinedconsole.log(typeof function(){}); // functionconsole.log(typeof isNaN); // functionconsole.log(typeof Symbol()); // symbolconsole.log(typeof 123n); // bigintconsole.log(typeof []); // objectconsole.log(typeof {}); // objectconsole.log(typeof null); // objectconsole.log(typeof new Date()); // objectconsole.log(typeof new RegExp()); // object针对二维数组,目标,null,時间等数据信息,typeof只有回到object,不可以立即回到相应的种类,必须根据别的方式分辨。
2 .案例
实例:
console.log(12 instanceof Number); // falseconsole.log('22' instanceof String); // falseconsole.log(true instanceof Boolean); // falseconsole.log(null instanceof Object); // falseconsole.log(undefined instanceof Object); // falseconsole.log(function a() {} instanceof Function); // trueconsole.log([] instanceof Array); // trueconsole.log({a: 1} instanceof Object); // trueconsole.log(new Date() instanceof Date); // true简易而言,分辨一些数据信息是不是构造方法的案例,如果是,回到true要不是,回到false。
在更多方面上,instanceof右边的原形能不能在instanceof左边数据信息的_ prototype _ prototype链中寻找,是一个解析xml的全过程。发觉是确实。
3 .构造器
实例:
console.log('22'.constructor === String) // trueconsole.log(true.constructor === Boolean) // trueconsole.log([].constructor === Array) // trueconsole.log(document.constructor === HTMLDocument) // trueconsole.log(window.constructor === Window) // trueconsole.log(new Number(22).constructor === Number) // trueconsole.log(new Function().constructor === Function) // trueconsole.log(new Date().constructor === Date) // trueconsole.log(new RegExp().constructor === RegExp) // trueconsole.log(new Error().constructor === Error) // true构造方法追踪目标的出生地点,这代表着您能够了解哪一个构造方法造成了一个目标。
实际上,当建立构造方法时,它将在其原形上建立一个构造方法特性,该特性偏向涵数自身。建立案例时,将承继其构造方法。嗯(表明彷徨等)...构造方法是案例的种类。
留意:null和undefined不当作构造方法存有,这两大类数据信息必须用别的方法分辨。
结果:实际上也有此外一个方式:Object.prototype.toString.call()。假如你有兴趣,你能查看文档,自身科学研究。