基础typeof运算符是JavaScript的基础知识点。虽然它有一定的局限性(见下文),但在前端js的实际编码过程中还是用得比较多的类型判断方法。因此,掌握这个运算符的特点,对于写出好的代码会有很大的帮助。typeof返回一个字符串,指示操作值的数据类型。基本语法:typeofoperandtypeof(operand)可能返回类型字符串:string,boolean,number,bigint,symbol,undefined,function,object。下面将根据可能的返回类型对返回类型进行分类介绍,使用typeof的方法将一一列举。字符串和布尔值字符串和布尔值分别返回字符串和布尔值。包括String()和Boolean()。typeof'1'//'string'typeofString(1)//'string'typeoftrue//'boolean'typeofBoolean()//'boolean'number和bigint数字返回数字,包括Number()、NaN和Infinity等。,和Math对象下的每个数学常量值。BigInt数值类型值返回bigint,包括BigInt(1)。typeof1//'number'typeofNaN//'number'typeofMath.PI//'number'typeof42n//'bigint'typeofBigInt(1)//'bigint'symbol符号值返回符号,包括Symbol()。typeofSymbol()//'symbol'typeofSymbol('foo')//'symbol'typeofSymbol.iterator//'symbol'undefinedundefined本身返回undefined。不存在或已定义但未分配初始值的变量将返回未定义。还有浏览器非标准功能,如document.all。typeofundefined//'undefined'typeoftttttt//'undefined'typeofdocument.all//'undefined'函数返回函数。包括使用es6的class类声明的。以及各种内置对象String、Number、BigInt、Boolean、RegExp、Error、Object、Date、Array、Function、Symbol本身。和函数(),新函数()。functionfunc(){}typeoffunc//'function'typeofclasscs{}//'function'typeofString//'function'typeofRegExp//'function'typeofnewFunction()//'function'对象对象,数组,null,正则表达式,Both返回对象。包括Math,jsON对象本身。除了Function之外,还有使用new运算符的数据。typeof{}//'object'typeof[]//'object'typeofnull//'object'typeof////'object'typeofMath//'object'typeofnewNumber(1)//'object'other关于其他大对于某些JavaScript关键字,结果值都是对象或函数。注意:小写字母多以object对象开头,大写字母多以method函数开头。清楚知道的常用方法不算,比如alert、prompt等方法。此外,还有在各个js环境中专门实现的宿主对象。常见问题引用错误在定义let和const块作用域变量之前使用typeof将引发ReferenceError。因为块级作用域变量在初始化前会在头部形成一个临时死区,否则会报引用错误。typeoftlett=1//VM327:1UncaughtReferenceError:tisnotdefined//at
