JavaScript 数据类型也是 JavaScript 世界中的一个重要的组成部分,所以作为java人员一定要熟知这些知识,那javascript有几种类型值?下面来我们就来给大家讲解一下这方面的内容。
栈:原始数据类型(Undefined,Null,Boolean,Number、String)。
堆:引用数据类型(对象、数组和函数)。
两种类型的区别是:存储位置不同;
原始数据类型直接存储在栈(stack)中的简单数据段,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储;
引用数据类型存储在堆(heap)中的对象,占据空间大、大小不固定,如果存储在栈中,将会影响程序运行的性能;引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。
怎么判断javascript数据类型?
JS数据类型的判断主要有三种方法:typeof、instanceof、Object.prototype.toString.call()
1、typeof
返回一个表示数据类型的字符串,返回结果包括:number、boolean、string、symbol、object、undefined、function等7种数据类型,但不能判断null、array等。
typeof Symbol(); // symbol 有效;
typeof ''; // string 有效;
typeof 1; // number 有效;
typeof true; //boolean 有效;
typeof undefined; //undefined 有效;
typeof new Function(); // function 有效;
typeof null; //object 无效;
typeof [] ; //object 无效;
typeof new Date(); //object 无效;
typeof new RegExp(); //object 无效;
2、instanceof
用来判断A是否为B的实例,A instanceof B, 返回 boolean 值。instanceof 用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性,但它不能检测 null 和 undefined
[] instanceof Array; //true;
{} instanceof Object;//true;
new Date() instanceof Date;//true;
new RegExp() instanceof RegExp//true;
null instanceof Null//报错;
undefined instanceof undefined//报错;
3、Object.prototype.toString.call()
一般数据类型都能够判断,最准确最常用的一种
Object.prototype.toString.call('') ; // [object String];
Object.prototype.toString.call(1) ; // [object Number];
Object.prototype.toString.call(true) ; // [object Boolean];
Object.prototype.toString.call(undefined) ; // [object Undefined];
Object.prototype.toString.call(null) ; // [object Null];
Object.prototype.toString.call(new Function()) ; // [object Function];
Object.prototype.toString.call(new Date()) ; // [object Date];
Object.prototype.toString.call([]) ; // [object Array];
Object.prototype.toString.call(new RegExp()) ; // [object RegExp];
Object.prototype.toString.call(new Error()) ; // [object Error];
判断javascript数据类型就是以上这三种,大家可以选择自己擅长的方法去判断,另外,javascript的类型值也要知道,这是重点!最后大家如果想要了解更多其他工具教程知识,敬请关注奇Q工具网。
推荐阅读: