首页 > 其他分享 >js typeof

js typeof

时间:2024-01-10 22:33:11浏览次数:22  
标签:instanceof 返回 console log js let typeof

typeof 操作符最适合用来判断一个变量是否为原始类型。更确切地说,它是判断一 个变量是否为字符串、数值、布尔值或 undefined 的最好方式。

let s = "Nicholas";
    let b = true;
    let i = 22;
    let u;
    let n = null;
    let o = new Object();
    console.log(typeof s); // string
    console.log(typeof i); // number
    console.log(typeof b); // boolean
    console.log(typeof u); // undefined
    console.log(typeof n); // object
    console.log(typeof o); // object

typeof 虽然对原始值很有用,但它对引用值的用处不大。我们通常不关心一个值是不是对象, 而是想知道它是什么类型的对象。为了解决这个问题,ECMAScript 提供了 instanceof 操作符。

result = variable instanceof constructor

如果变量是给定引用类型(由其原型链决定,将在第 8 章详细介绍)的实例,则 instanceof 操作 符返回 true。

console.log(personinstanceofObject); //变量person是Object吗?
 console.log(colors instanceof Array); // 变量 colors 是 Array 吗? console.log(pattern instanceof RegExp); // 变量 pattern 是 RegExp 吗?

所有引用值都是 Object 的实例,因此通过 instanceof 操作符检测任何引用值和 Object 构造函数都会返回 true。类似地,如果用 instanceof 检测原始值,则始终会返回 false, 因为原始值不是对象。

typeof操作符在用于检测函数时也会返回"function"。当在Safari(直到Safari5) 和 Chrome(直到 Chrome 7)中用于检测正则表达式时,由于实现细节的原因,typeof 也会返回"function"。

ECMA-262 规定,任何实现内部[[Call]]方法的对象都应该在 typeof 检测时返回"function"。因为上述浏览器中的正则表达式实现了这个方法,所 以 typeof 对正则表达式也返回"function"。在 IE 和 Firefox 中,typeof 对正则表达式 返回"object"。

标签:instanceof,返回,console,log,js,let,typeof
From: https://blog.51cto.com/u_16255561/9186714

相关文章

  • js 原始值
    原始值和引用值在通过变量复制时也有所不同。在通过变量把一个原始值赋值到另一个变量时,原始值会被复制到新变量的位置。请看下面的例子:letnum1=5;letnum2=num1;这里,num1包含数值5。当把num2初始化为num1时,num2也会得到数值5。这个值跟存储在num1中的5是......
  • js 函数
    函数对任何语言来说都是核心组件,因为它们可以封装语句,然后在任何地方、任何时间执行。ECMAScript中的函数使用function关键字声明,后跟一组参数,然后是函数体。以下是函数的基本语法:functionfunctionName(arg0,arg1,...,argN){statements}下面是一个例子:functionsayHi(......
  • js switch语句
    with语句的用途是将代码作用域设置为特定的对象,其语法是:with(expression)statement;使用with语句的主要场景是针对一个对象反复操作,这时候将代码作用域设置为该对象能提供便利,如下面的例子所示:letqs=location.search.substring(1);lethostName=location.hostnam......
  • js for
    for-in语句是一种严格的迭代语句,用于枚举对象中的非符号键属性,语法如下:for(propertyinexpression)statement下面是一个例子:for(constpropNameinwindow){document.write(propName);}这个例子使用for-in循环显示了BOM对象window的所有属性。每次执行循环,都会给......
  • RxJS
     什么是RxJSRxJS是一个用于响应式流的库,它基于Observables(可观察对象)和Operators(操作符)的概念。它提供了一种响应式编程的方式,使得异步数据流和事件更容易管理和组合。 什么是流流可以被视为一个持续的事件序列。它可以是由用户交互、网络请求、定时器等事件触发的数据序列。这?......
  • [protobuf] ProtoBufEditor 解析bin文件和json文件
    ProtoBufEditor解析bin文件和json文件ProtoBufEditor是一个用于编辑ProtocolBuffers(ProtoBuf)文件的工具。支持导入的文件类型SingleMessageDelimitedMessagesSelfDescribingMessageSelfDescribingDelimitedText(SingleMessage)Json(SingleMessage)解析bin......
  • delphi JSON序列化(五)
    关于TJSONConverters的使用unitUnit1;interfaceusesWinapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,System.Classes,Vcl.Graphics,Vcl.Controls,Vcl.Forms,Vcl.Dialogs,Vcl.StdCtrls,Vcl.Buttons,Rest.JSON.Types,Rest.JsonReflect;t......
  • delphi JSON序列化(四)
    涉及的重要类REST.Json,REST.JsonReflect,REST.Json.Interceptors,REST.Json.Types单元中。一、TJson类最简单的一个类,提供了JSON->OBJECT和OBJECT->JSON几个方法,方法有TJsonOptions参数,如:   classfunctionObjectToJsonObject(AObject:TObject;AOptions:TJsonOpti......
  • js判断坐标点是否在一个多边形坐标数组范围内
    主要用到了射线法(RayCastingAlgorithm)来判断一个点是否在多边形的范围内。下面是一个简单的JavaScript函数来实现这个功能:functionpointInPolygon(point,polygon){varx=point[0];vary=point[1];varinside=false;for(vari=0,j=polygon.length-1;......
  • JOSN字符串字段遍历(json-path)
    官网https://github.com/json-path/JsonPath依赖<dependency><groupId>com.jayway.jsonpath</groupId><artifactId>json-path</artifactId><version>2.5.0</version></dependency>......