前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《你不知道的JavaScript》:js类型的注意点

《你不知道的JavaScript》:js类型的注意点

作者头像
前端_AWhile
发布2019-08-29 13:10:51
3960
发布2019-08-29 13:10:51
举报
文章被收录于专栏:前端一会前端一会

从本篇开始读《你不知道的JavaScript》中篇。

本篇看下js中的类型和值的知识点。

先来看下js中的七种内置类型:

  • 空值 null
  • 未定义 undefined
  • 布尔值 boolean
  • 数值 number
  • 字符串 string
  • 对象 object
  • 符号 symbol(ES6中新增)

除对象外,其他统称为基本类型。

可以使用typeof来查看值的类型,它返回的是类型的字符串值。但有一种类型和它的字符串值并不一一对应:

代码语言:javascript
复制
typeof undefined === "undefined";   // true
typeof 42 === "number";             // true
typeof "abc42" === "string";        // true
typeof true === "boolean";          // true
typeof {name: "nitx"} === "object"; // true
typeof Symbol() === "symbol";       // teue

//注意,null和它的字符串值并不对应
typeof null === "object";           // true

关于的null,正确的返回结果应是"null",这是语言bug,但由于这个错误自语言面世延续至今,所以为系统安全,这个bug大概率不会去修正了。

需要使用复合类型来检测null值的类型:

代码语言:javascript
复制
var a = null;
( !a && typeof a === "object" );    // true

另外还有几种:

代码语言:javascript
复制
typeof function a(){} === "function";    // true
typeof [1, 2, 3] === "object";          // true

函数和数组都可以理解成是object的一个“子类型”。

在js中变量是没有类型的,只有值才有。变量可以随时持有任何类型的值。

变量在未持有值时为undefined,此时typeof返回"undefined"。

代码语言:javascript
复制
var a;
typeof a;   // undefined
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端小二 微信公众号,前往查看

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

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

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