javascript有几种类型值?怎么判断javascript数据类型?

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工具网。

推荐阅读:

java运行窗口怎么放大?如何实现多次运行?

java安全框架有哪些?java安全框架讲解

fastjson如何才能忽略属性为null的字段?