快捷搜索:  汽车  科技

js的if语句的基本语法格式(js基础判断类型)

js的if语句的基本语法格式(js基础判断类型)通常我们使用 typeof 来判断类型:复杂类型:同时希望在读的各位多少能有些收获。如下示例均摘自《你不知道的 javascript 》以下是 js 中的六种基本类型:


js的if语句的基本语法格式(js基础判断类型)(1)

前言

近期在复习前端相关知识点,接触到很多平时业务涉及不到的东西(你可以理解是些偏语言本身方向的)。

以前一直错误的以为我是个“经验丰富”的前端开发,其实从纵向发展的深度上看,我依旧语言能力不过关,借这个机会继续沉淀自己,让自己未来能走的更远。

同时希望在读的各位多少能有些收获。

如下示例均摘自《你不知道的 javascript 》

内置类型

以下是 js 中的六种基本类型:

  • null
  • undefined
  • number
  • string
  • boolean
  • symbol(es6)

复杂类型:

  • object
类型判断

通常我们使用 typeof 来判断类型:

js的if语句的基本语法格式(js基础判断类型)(2)

示例(返回 true)

null 的特殊判断

注意 null 的判断,其的 typeof 结果不为 null ,而是 object :

js的if语句的基本语法格式(js基础判断类型)(3)

示例(返回 true)

所以如果针对 null 类型的判断,健全的判断方式如下:

js的if语句的基本语法格式(js基础判断类型)(4)

其他“子类型”

另外针对 object 的子类型,还有个别需要注意:

js的if语句的基本语法格式(js基础判断类型)(5)

变量和未定义、未声明

我们可以通过如下形式,来判断某变量的具体类型:

js的if语句的基本语法格式(js基础判断类型)(6)

变量本身没有类型,而是根据其值来变动它的类型。

但是要注意,变量的 未定义未声明 这两者在 typeof 中的不同影响:

js的if语句的基本语法格式(js基础判断类型)(7)

看上面代码中的 bazbal 的判断结果,前者符合预期返回了 undefined ,而后者居然也返回该值,而不是”报错”。

这是因为 typeof 本身具备一种“安全防范机制”,似乎可以认为其中帮我们做了类似 try/catch 的判断,对于 未定义 或者 未声明 的变量,一律返回 undefined

利用这种“安全防范机制”,让我们的代码具备了某种能力:

js的if语句的基本语法格式(js基础判断类型)(8)

这样我们可以根据某些变量来做不同环境场景的功能。

可能你习惯用 window.isProductEnv 这样的方式做这样的操作,但要知道 js 不仅仅在浏览器端使用,像 node 环境中是没有 window 这样的全局变量的,利用 typeof 的安全机制更让代码有健壮性。

总结

平时经常用 typeof 做类型判断, 但没有特别针对 null 的判断有所深入,借这篇文章又再次学习了集中内置类型的判断方式,以及 typeof 的安全防范机制。

猜您喜欢: