资讯专栏INFORMATION COLUMN

JS类型判断的方法

djfml / 2500人阅读

摘要:在看医用类型的例子上述代码中,都是引用类型。数据类型检测返回一个表示数据类型的字符串,返回结果包括等种数据类型,但不能判断等。有效有效有效有效有效有效无效无效无效无效是用来判断是否为的实例,表达式为,如果是的实例,则返回否则返回。

js中常用的数据类型
JavaScript 变量能够保存多种数据类型,而JavaScript中的数据类型分为基本数据类型和引用数据累心,常用的基本数据类型包括数字(Number)、字符串(String)、布尔值(Boolean)、Null、Undefine、Symbol等,常用的引用数据类型包括Object(对象)、Array(数组)、Function(函数)。

基本类型和引用类型存储于内存的位置不同,基本类型直接存储在栈中,而引用类型的对象存储在堆中,与此同时,在栈中存储了指针,而这个指针指向正是堆中实体的起始位置,区别如下:
let a = 10;
let b = a;
b = 20;
console.log(a) //10
console.log(b) //20
上述代码中,a、b都是基本数据类型,两者分别修改赋值,相互之间没有任何影响。在看医用类型的例子:
let x = {a:10,b:20}
let y = x
y.a = 100
y.b = 200
console.log(x) //{a:100,b:200}
console.log(y) //{a:100,b:200}
上述代码中,x、y都是引用类型。在执行了x = y之后,修改y的属性值,x的也跟着变化。因为x和y都是引用类型,指向了同一个内存地址,即两者引用的是同一个值,因此y修改属性时,x的值随之改动。
数据类型检测

typeof
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 无效

instanceof
是用来判断A是否为B的实例,表达式为:A instanceof B,如果A是B的实例,则返回true,否则返回false。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 //报错

Object.prototype.toString.call()
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(undefine) ; // [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]

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105105.html

相关文章

  • 【underscore.js 源码解读】常用类型判断以及一些有用工具方法

    摘要:最近开始看源码,并将源码解读放在了我的计划中。今天就跟大家聊一聊中一些常用类型检查方法,以及一些工具类的判断方法。用是否含有属性来判断工具类判断方法接下来看下一些常用的工具类判断方法。 Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中。 阅读一些著名框架类库的源码,就好像和一个个大师对话...

    tanglijun 评论0 收藏0
  • JStypeof和类型判断

    摘要:摘要这篇文章讲述运算符判断基本类型和引用类型的区别,以及怎么判断数组类型和空对象有种原始类型,即和。类型判断类型判断,一般就是判断是否是数组,是否是空对象。方法四使用语法,返回一个数组,只需要判断数组长度是否大于即可。 摘要 这篇文章讲述typeof运算符判断基本类型和引用类型的区别,以及怎么判断数组类型和空对象 typeof ECMAScript 有 5 种原始类型(primitiv...

    cppowboy 评论0 收藏0
  • JS类型判断

    摘要:和这三种基本的数据类型,都有对应的引用包装类型和。应用于引用类型的判断,所以对于这三类基本类型没有什么意义。 JS 中的类型判断 js中的数据类型 基本数据类型 undefined、number、string、boolean 引用数据类型 null、Object、Number、String、Boolean、Function、Array、Date、RegExp、Error、Argumen...

    ChanceWong 评论0 收藏0
  • 原生JS大揭秘—数据类型

    摘要:中九个内置对象在规范中定义了六种数据类型其中原始值类型有种,引用类型有种一有包装对象数值型,包括整形和浮点型其中都是类型二有包装对象字符串类型,有两种表示方式,双引号单引号。方法可以将任意类型数据转成字符串。 JS中九个内置对象 showImg(https://segmentfault.com/img/bV6iZG?w=481&h=411); 在ECMAScript规范(ES5)中定义...

    luck 评论0 收藏0
  • js中对数据类型总结及判断数据类型各种方法及优缺点

    摘要:最常见的判断方法它的官方解释操作符返回一个字符串,表示未经计算的操作数的类型。另外,是判断对象是否属于某一类型,而不是获取的对象的类型。多个窗口意味着多个全局环境,不同的全局环境拥有不同的全局对象,从而拥有不同的内置类型构造函数。 js中的数据类型 js中只有六种原始数据类型和一个Object: Boolean Null Undefined Number String Symbol ...

    voyagelab 评论0 收藏0
  • js数据类型判断数据类型方法

    摘要:基本数据类型引用类型判断数据类型的方法判断中的数据类型有一下几种方法接下来主要比较一下这几种方法的异同。通常情况下用判断就可以了,遇到预知类型的情况可以选用或方法实在没辙就使用方法。 基本数据类型:String、Number、Boolean、Symbol、undefined、Null引用类型:Object Array Function 判断数据类型的方法: 判断js中的数据类型有一...

    whidy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<