关于JavaScript中typeof的用法

一、typeof的作用

在JavaScript中,变量未经声明就使用,系统是会报错的。但是,typeof却是js中有且仅有的一个特例。

typeof的作用就是用来区分数据类型的,下面先说说typeof的使用方法,以判断n的数据类型为例:

1、typeof n;

2、typeof(n);

这两种方法结果是一样的。


二、typeof返回的数据类型

数据类型包括六大类:其中四种原始数据和两种复杂数据。

原始数据:number、string、boolean、undefined。

复杂数据:object、function。

注意:返回值为字符串,而且全部小写,全部小写,全部小写,重要的事情说三遍。

1、number

console.log(typeof(666));===>number
console.log(typeof(NaN));===>number
console.log(typeof(0));  ===>number

2、string

console.log(typeof('a'));		 ===>string
console.log(typeof('undefined'));===>string
console.log(typeof('null'));     ===>string

 3、boolean

console.log(typeof(false));===>boolean
console.log(typeof(true)); ===>boolean

4、undefined

两种情况: 

  • 变量未经声明
 console.log(typeof(a));===>undefined

 

 

  • 变量的值就是undefined
 console.log(typeof(undefined));===>undefined

5、object

    var a = {};//对象
    console.log(typeof(a)); ===> object

    var b = [];//数组
    console.log(typeof(b)); ===> object

    console.log(typeof(null)); ===> object  //特殊的

 6、function

var a = function(){};
console.log(typeof(a));===>function

三、转换成布尔型是false的六个

  • null、undefined
  • 数字0和NaN
  • 布尔值中的false
  • 空字符串''
console.log(Boolean(null));     ===>false
console.log(Boolean(undefined));===>false
console.log(Boolean(0));        ===>false
console.log(Boolean(NaN));      ===>false
console.log(Boolean(false));    ===>false
console.log(Boolean(''));       ===>false

可总结为,js中五中基本数据类型undefined、null、布尔型、数字和字符串,外加对象共六中类型中,只有undefinednull、布尔值中的false、数字中的0NaN,和字符串中的空字符串'',共计6种值被转换成false, 其余的都被转换成true

console.log(typeof(null));      ===>object
console.log(typeof(undefined)); ===>undefined
console.log(typeof(0));         ===>number
console.log(typeof(NaN));       ===>number
console.log(typeof(false));     ===>boolean
console.log(typeof(''));        ===>string

注意:

1. console.log(typeof(a));         ===> undefined
2. console.log(typeof(undefined)); ===> undefined
3. console.log(typeof(typeof(a))); ===> string

这是因为1中的typeof(a)返回的undefined是字符串类型,所以3就相当于typeof('undefined'),结果为string。

参考:

1、JavaScript布尔类型及转换------ https://segmentfault.com/a/1190000007274034

2、关于JavaScript中typeof的用法------https://blog.csdn.net/inthuixiang/article/details/78586368

3、https://www.runoob.com/js/js-typeof.html

4、http://www.w3school.com.cn/js/js_datatypes.asp

 

如果您喜欢编程,或者您需要网站开发、app、小程序等等。。可以加入我们qq群:333530575。

 

 

JavaScript 中,`typeof` 是一个操作符,用于返回一个表示数据类型的字符串。以下是其使用方法及示例: ### 基本语法 ```javascript typeof operand typeof(operand) ``` 其中,`operand` 是要检测的变量、值或表达式。这两种语法形式是等价的,但通常推荐使用第一种,因为它更简洁。 ### 返回值 `typeof` 可能返回以下几种不同的字符串: - `"number"`:当操作数是数字(包括整数、浮点数、NaN、Infinity 等)时返回。 ```javascript console.log(typeof 42); // "number" console.log(typeof 3.14); // "number" console.log(typeof NaN); // "number" console.log(typeof Infinity); // "number" ``` - `"string"`:当操作数是字符串时返回。 ```javascript console.log(typeof "Hello, World!"); // "string" ``` - `"boolean"`:当操作数是布尔值(`true` 或 `false`)时返回。 ```javascript console.log(typeof true); // "boolean" ``` - `"object"`:当操作数是对象(包括数组、日期、正则表达式等)、`null` 时返回。需要注意的是,`typeof null` 返回 `"object"` 是 JavaScript 语言的一个历史遗留问题。 ```javascript console.log(typeof { key: "value" }); // "object" console.log(typeof [1, 2, 3]); // "object" console.log(typeof null); // "object" ``` - `"function"`:当操作数是函数时返回。 ```javascript function greet() { console.log("Hello!"); } console.log(typeof greet); // "function" ``` - `"undefined"`:当操作数是未定义的变量、函数没有返回值时返回。 ```javascript let variable; console.log(typeof variable); // "undefined" function noReturn() {} console.log(typeof noReturn()); // "undefined" ``` - `"symbol"`:当操作数是 ES6 中引入的 Symbol 类型时返回。 ```javascript const sym = Symbol('description'); console.log(typeof sym); // "symbol" ``` ### 注意事项 - `typeof` 对于区分不同类型的对象(如数组、日期等)能力有限,因为它们都返回 `"object"`。如果需要更精确的类型检查,可以使用 `Object.prototype.toString.call()` 方法。 ```javascript console.log(Object.prototype.toString.call([1, 2, 3])); // "[object Array]" ``` - `typeof` 操作符不会抛出错误,即使操作数是未声明的变量,也会返回 `"undefined"`。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值