js的if语句的基本语法格式(js基础判断类型)
js的if语句的基本语法格式(js基础判断类型)通常我们使用 typeof 来判断类型:复杂类型:同时希望在读的各位多少能有些收获。如下示例均摘自《你不知道的 javascript 》以下是 js 中的六种基本类型:
近期在复习前端相关知识点,接触到很多平时业务涉及不到的东西(你可以理解是些偏语言本身方向的)。
以前一直错误的以为我是个“经验丰富”的前端开发,其实从纵向发展的深度上看,我依旧语言能力不过关,借这个机会继续沉淀自己,让自己未来能走的更远。
同时希望在读的各位多少能有些收获。
如下示例均摘自《你不知道的 javascript 》
内置类型以下是 js 中的六种基本类型:
- null
- undefined
- number
- string
- boolean
- symbol(es6)
复杂类型:
- object
通常我们使用 typeof 来判断类型:
示例(返回 true)
null 的特殊判断
注意 null 的判断,其的 typeof 结果不为 null ,而是 object :
示例(返回 true)
所以如果针对 null 类型的判断,健全的判断方式如下:
其他“子类型”
另外针对 object 的子类型,还有个别需要注意:
变量和未定义、未声明我们可以通过如下形式,来判断某变量的具体类型:
变量本身没有类型,而是根据其值来变动它的类型。
但是要注意,变量的 未定义 和 未声明 这两者在 typeof 中的不同影响:
看上面代码中的 baz 和 bal 的判断结果,前者符合预期返回了 undefined ,而后者居然也返回该值,而不是”报错”。
这是因为 typeof 本身具备一种“安全防范机制”,似乎可以认为其中帮我们做了类似 try/catch 的判断,对于 未定义 或者 未声明 的变量,一律返回 undefined
利用这种“安全防范机制”,让我们的代码具备了某种能力:
这样我们可以根据某些变量来做不同环境场景的功能。
可能你习惯用 window.isProductEnv 这样的方式做这样的操作,但要知道 js 不仅仅在浏览器端使用,像 node 环境中是没有 window 这样的全局变量的,利用 typeof 的安全机制更让代码有健壮性。
总结平时经常用 typeof 做类型判断, 但没有特别针对 null 的判断有所深入,借这篇文章又再次学习了集中内置类型的判断方式,以及 typeof 的安全防范机制。