前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js面试题-type of返回值的所有情况

js面试题-type of返回值的所有情况

作者头像
用户10106350
发布2022-10-28 13:01:21
9070
发布2022-10-28 13:01:21
举报
文章被收录于专栏:WflynnWeb

typeof 操作符返回一个字符串

typeof 可能的返回值

类型

结果

Undefined

undefined

Null

object

Boolean

boolean

Number

number

BigInt

bigint

String

string

Symbol

symbol

Function

function

其他任何对象

object

number

代码语言:javascript
复制
// 数值
typeof(42) === 'number';
typeof Math.LN2 === 'number';
typeof Infinity === 'number';
typeof NaN === 'number'; // 尽管它是 "Not-A-Number" (非数值) 的缩写
typeof Number(1) === 'number'; // Number 会尝试把参数解析成数值

bigint typeof 42n === 'bigint';
代码语言:javascript
复制
string
代码语言:javascript
复制
// 字符串
typeof '' === 'string';
typeof `template literal` === 'string';
typeof '1' === 'string'; // 注意内容为数字的字符串仍是字符串
typeof (typeof 1) === 'string'; // typeof 总是返回一个字符串
typeof String(1) === 'string'; // String 将任意值转换为字符串,比 toString 更安全
代码语言:javascript
复制
bollean
代码语言:javascript
复制
// 布尔值
typeof true === 'boolean';
typeof false === 'boolean';
typeof Boolean(1) === 'boolean'; // Boolean() 会基于参数是真值还是虚值进行转换
typeof !!(1) === 'boolean'; // 两次调用 ! (逻辑非) 操作符相当于 Boolean()
代码语言:javascript
复制
symbol 
代码语言:javascript
复制
// Symbols
typeof Symbol() === 'symbol';
typeof Symbol('foo') === 'symbol';
typeof Symbol.iterator === 'symbol';
代码语言:javascript
复制
undefined
代码语言:javascript
复制
// Undefined
typeof undefined === 'undefined';
typeof undeclaredVariable === 'undefined';
代码语言:javascript
复制
object
代码语言:javascript
复制
typeof {a: 1} === 'object';
typeof [1, 2, 4] === 'object';
typeof new Date() === 'object';
typeof /regex/ === 'object';
typeof new Boolean(true) === 'object';
typeof new Number(1) === 'object';
typeof new String('abc') === 'object';
代码语言:javascript
复制
function
代码语言:javascript
复制
typeof function() {} === 'function';
typeof class C {} === 'function'
typeof Math.sin === 'function';
代码语言:javascript
复制
null:在 JavaScript 最初的实现中,JavaScript 中的值是由一个表示类型的标签和实际数据值表示的。对象的类型标签是 0。由于 null 代表的是空指针(大多数平台下值为 0x00),因此,null 的类型标签是 0,typeof null 也因此返回 "object"
代码语言:javascript
复制
typeof null === 'object';
代码语言:javascript
复制
除 Function 外的所有构造函数的类型都是 'object'
代码语言:javascript
复制
var str = new String('String');
var num = new Number(100);

typeof str; // 返回 'object'
typeof num; // 返回 'object'

var func = new Function();

typeof func; // 返回 'function'
代码语言:javascript
复制
语法中的括号
代码语言:javascript
复制
// 括号有无将决定表达式的类型。
var iData = 99;

typeof iData + ' Wisen'; // 'number Wisen'
typeof (iData + ' Wisen'); // 'string'
代码语言:javascript
复制
es6之前typeof 总能保证对任何所给的操作数返回一个字符串。即便是没有声明的标识符,typeof 也能返回 'undefined'。

es6加入了块级作用域的 let 和 const 之后,在其被声明之前对块中的 let 和 const 变量使用 typeof 会抛出一个 ReferenceError。

代码语言:javascript
复制
typeof newConstVariable; // ReferenceError
const newConstVariable = 'hello';

13.推荐系统

链接:https://pan.baidu.com/s/1wueVtxqdBmHqBPq8mvhHCQ

提取码:lca5

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WflynnWeb 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档