《JavaScript启示录》——1.16 typeof操作符

简介: typeof操作符用于返回正在使用值的类型。但它返回的值并不一致,或者说,逻辑上不一致。下面的代码展示了使用typeof操作符所返回的值。

本节书摘来自异步社区《JavaScript启示录》一书中的第1章,第1.16节,作者:【美】Cody Lindley著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.16 typeof操作符

typeof操作符用于返回正在使用值的类型。但它返回的值并不一致,或者说,逻辑上不一致。下面的代码展示了使用typeof操作符所返回的值。

<!DOCTYPE html><html lang="en"><body><script>

// 原始值
var myNull = null;
var myUndefined = undefined;
var primitiveString1 = "string";
var primitiveString2 = String('string');
var primitiveNumber1 = 10;
var primitiveNumber2 = Number('10');
var primitiveBoolean1 = true;
var primitiveBoolean2 = Boolean('true');

console.log(typeof myNull); // 输出object,需要注意!!!
console.log(typeof myUndefined); // 输出undefined
console.log(typeof primitiveString1, typeof primitiveString2);
   // 输出string string
console.log(typeof primitiveNumber1, typeof primitiveNumber2);
   // 输出number number
console.log(typeof primitiveBoolean1, typeof primitiveBoolean2);
   // 输出boolean boolean

// 复杂值
var myNumber = new Number(23);
var myString = new String('male');
var myBoolean = new Boolean(false);
var myObject = new Object();
var myArray = new Array('foo', 'bar');
var myFunction = new Function("x", "y", "return x * y");
var myDate = new Date();
var myRegExp = new RegExp('\\bt[a-z]+\\b');
var myError = new Error('Crap!');

console.log(typeof myNumber); // 输出object
console.log(typeof myString); // 输出object
console.log(typeof myBoolean); // 输出object
console.log(typeof myObject); // 输出object
console.log(typeof myArray); // 输出object
console.log(typeof myFunction); // 输出function,需要注意!!!
console.log(typeof myDate); // 输出object
console.log(typeof myRegExp); // 输出function,需要注意!!!
console.log(typeof myError); // 输出object

</script></body></html>

在这些值上使用该操作符时,考虑到正在使用的值(原始值或复杂值)的类型,我们应该特别注意潜在的返回值。

相关文章
|
JavaScript 前端开发 安全
javascript中的可选链操作符
javascript中的可选链操作符
|
JavaScript 前端开发
JS中的typeof
`typeof`操作符在JavaScript中用于检测变量的数据类型。然而,它并非总是完全准确,如:数组和null被错误地标记为&#39;object&#39;,NAN是&#39;number&#39;,Symbol是&#39;function&#39;,而Array也是&#39;function&#39;。注意`undefined`返回&#39;undefined&#39;。
egg.js 24.12sequelize模型-where操作符
egg.js 24.12sequelize模型-where操作符
26 1
egg.js 24.12sequelize模型-where操作符
|
JavaScript 前端开发
JavaScript typeof、nul
JavaScript typeof、null和undefined是JavaScript编程中常用的三种类型。 typeof是JavaScript中的一个操作符,用于判断变量的类型。它的返回值是一个字符串,表示变量的数据类型。typeof的用法很简单,例如:typeof x,它会返回一个表示x的数据类型的字符串。typeof的返回值有六种,分别是:"undefined"、"boolean"、"string"、"number"、"object"和"function"。
13 1
|
1小时前
|
JavaScript 前端开发 测试技术
探究 JavaScript 类型检查的利器:typeof 和 instanceof
探究 JavaScript 类型检查的利器:typeof 和 instanceof
|
9月前
|
JavaScript 前端开发 索引
JavaScript Day02 操作符及类型转换与流程控制语句 3
JavaScript Day02 操作符及类型转换与流程控制语句 3
44 0
|
9月前
|
Web App开发 JavaScript 前端开发
JavaScript Day02 操作符及类型转换与流程控制语句 1
JavaScript Day02 操作符及类型转换与流程控制语句 1
50 0
|
5月前
|
JavaScript 前端开发
JavaScript学习(六十三)—typeof和instanceof检测数据类型的异同
JavaScript学习(六十三)—typeof和instanceof检测数据类型的异同
|
6月前
|
存储 JavaScript 前端开发
javascript基本语法学习(变量、数据类型、操作符、条件语句、循环)
javascript基本语法学习(变量、数据类型、操作符、条件语句、循环)
|
8月前
|
JavaScript 前端开发
谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator
谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator
35 0