基于javascript中的typeof和类型判断(详解)

yizhihongxing

基于Javascript中的typeof和类型判断(详解)

typeof

typeof 运算符可以用来判断一个变量的数据类型,语法如下:

typeof operand

其中 operand 是需要判断的变量或值。typeof 运算符会返回以下几种类型的字符串值:

  • "undefined":如果 operand 未定义或未声明
  • "boolean":如果 operand 是布尔类型
  • "number":如果 operand 是数值类型(包括整数和浮点数)
  • "string":如果 operand 是字符串类型
  • "symbol":如果 operand 是 Symbol 类型(ES6 新增)
  • "object":如果 operand 是对象类型(包括 null 和数组)
  • "function":如果 operand 是函数类型

以下是一个使用 typeof 判断数据类型的示例:

let value1; // 未定义变量
let value2 = null; // 值为 null 的变量
let value3 = true; // 布尔类型变量
let value4 = 123; // 数值类型变量
let value5 = "hello"; // 字符串类型变量
let value6 = {}; // 空对象
let value7 = []; // 空数组
let value8 = function() {}; // 空函数

console.log(typeof value1); // 输出:"undefined"
console.log(typeof value2); // 输出:"object"
console.log(typeof value3); // 输出:"boolean"
console.log(typeof value4); // 输出:"number"
console.log(typeof value5); // 输出:"string"
console.log(typeof value6); // 输出:"object"
console.log(typeof value7); // 输出:"object"
console.log(typeof value8); // 输出:"function"

需要注意的是, typeof null 返回的是 "object",这是 Javascript 中一个已知的 Bug。

类型判断

在 Javascript 中,除了使用 typeof 运算符之外,还可以使用其他方法来判断一个变量的数据类型,常用的方法包括 instanceof 运算符、Object.prototype.toString 方法等。

instanceof 运算符

instanceof 运算符用来判断一个变量是否为指定类型的实例,语法如下:

object instanceof constructor

其中 object 是需要判断的变量或值,constructor 是要判断的类型(构造函数)。

以下是一个使用 instanceof 判断数据类型的示例:

let value1 = [];
let value2 = {};

console.log(value1 instanceof Array); // 输出:true
console.log(value1 instanceof Object); // 输出:true
console.log(value2 instanceof Array); // 输出:false
console.log(value2 instanceof Object); // 输出:true

需要注意的是, instanceof 运算符的右操作数必须是一个构造函数,而且和左操作数的原型链中至少有一个相同的对象,否则会返回 false

Object.prototype.toString 方法

Object.prototype.toString 方法用来返回一个对象的字符串表示,语法如下:

Object.prototype.toString.call(object)

其中 object 是需要判断的变量或值。

以下是一个使用 Object.prototype.toString 判断数据类型的示例:

let value1 = null;
let value2 = undefined;
let value3 = true;
let value4 = 123;
let value5 = "hello";
let value6 = {};
let value7 = [];
let value8 = function() {};

console.log(Object.prototype.toString.call(value1)); // 输出:"[object Null]"
console.log(Object.prototype.toString.call(value2)); // 输出:"[object Undefined]"
console.log(Object.prototype.toString.call(value3)); // 输出:"[object Boolean]"
console.log(Object.prototype.toString.call(value4)); // 输出:"[object Number]"
console.log(Object.prototype.toString.call(value5)); // 输出:"[object String]"
console.log(Object.prototype.toString.call(value6)); // 输出:"[object Object]"
console.log(Object.prototype.toString.call(value7)); // 输出:"[object Array]"
console.log(Object.prototype.toString.call(value8)); // 输出:"[object Function]"

需要注意的是,Object.prototype.toString 方法返回的字符串包含了变量的数据类型信息,其中 "Null""Undefined""Boolean""Number""String""Object""Array""Function" 等字符串是不能改变的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于javascript中的typeof和类型判断(详解) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • JS常用正则表达式及验证时间的正则表达式

    JS常用正则表达式及验证时间的正则表达式 一、常用正则表达式 1. 邮箱验证正则表达式 /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/ 该正则表达式验证邮箱是否合法,以多段分别用@和.连接。 [a-zA-Z0-9_-]+表示特殊字符_-、数字、大小写字母可以重复出现一次或多次。 (\.[a-zA-Z0…

    JavaScript 2023年6月10日
    00
  • JavaScript入门教程(5) js Screen屏幕对象

    JavaScript入门教程(5) js Screen屏幕对象 简介 Screen 对象代表了当前浏览器所在电脑的屏幕信息。通过 Screen 对象,我们可以获取到客户端屏幕的宽、高、物理宽、高、可用宽、高等相关信息,可以方便设计响应式页面。 属性 Screen.width 获取当前屏幕的宽度。 Screen.height 获取当前屏幕的高度。 Screen…

    JavaScript 2023年5月27日
    00
  • 浅析JS刷新框架中的其他页面 && JS刷新窗口方法汇总

    浅析JS刷新框架中的其他页面 && JS刷新窗口方法汇总 1. JS刷新框架中的其他页面 在JS刷新框架中,要刷新其他页面,可以使用以下代码: window.parent.location.reload(); 此代码可以重新加载父窗口中当前页面所在的框架集的所有页面。 同时,我们还可以利用window.open方法打开一个新的窗口,然后再用w…

    JavaScript 2023年6月11日
    00
  • 全面解析JS字符串和正则表达式中的match、replace、exec等函数

    全面解析JS字符串和正则表达式中的match、replace、exec等函数 在JS中,字符串和正则表达式都有一些常用的函数,用于对它们进行操作。其中比较常用的包括match()、replace()和exec()函数。下面就分别来详细讲解它们的用法。 match()函数 match()函数用于在字符串中查找匹配正则表达式的内容,并返回一个包含匹配结果的数组或…

    JavaScript 2023年5月28日
    00
  • js调试工具console.log()方法查看js代码的执行情况

    当我们编写复杂的JavaScript代码时,难免会出现各种错误和异常,这时候需要一些有效的工具来帮助我们进行调试。其中一个非常重要的工具就是 console.log() 方法。 什么是 console.log() 方法? console.log() 方法是 JavaScript 调试的常见方式之一,它在控制台输出一个指定的字符串,可以帮助我们跟踪代码执行过程…

    JavaScript 2023年5月28日
    00
  • JavaScript Event Loop相关原理解析

    JavaScript Event Loop相关原理解析 什么是Event Loop Event Loop是JavaScript的一种异步编程模型,用于处理进程中的各种事件。 JavaScript在单线程执行的情况下,对于涉及到阻塞I/O,耗时计算等操作时,若采取同步的方式处理,会导致线程的阻塞并降低程序的响应时间和执行效率,因此JavaScript采用异步的…

    JavaScript 2023年5月28日
    00
  • AJAX的跨域访问-两种有效的解决方法介绍

    当浏览器从一个域名中的页面跳转到另一个域名的页面时,就会发生所谓的跨域问题。因此网页中的 AJAX 异步请求有时会由于跨域原因而不能正常返回数据。下面将介绍两种有效的跨域访问 AJAX 的解决方法。 方法一:JSONP 在前端中,通过 JSONP 的方式可以实现跨域请求,并且使用比较简便。JSONP 是通过使用 script 标签进行异步请求,使用 call…

    JavaScript 2023年6月11日
    00
  • JavaScript简介

    JavaScript简介 什么是JavaScript JavaScript是一种脚本语言,用于向Web页面添加交互性。JavaScript源自Netscape公司,它最初被称为LiveScript,后来改名为JavaScript。JavaScript不同于Java,JavaScript是一种解释性语言,而Java是一种编译性语言。 JavaScript可以跨…

    JavaScript 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部