3个关于javascript数据类型小技巧

JavaScript是弱类型语言,这意味着你无需声明是哪种数据类型存储在变量中。 JavaScript会根据指定的信息(例如,''或""来表示字符串)自动赋予其类型。 许多其他语言(如Java)必须声明变量的类型,例如int,float,boolean或String。

这是把双刃剑

Photo by Alex

虽然JavaScript的类型系统有很大的灵活性,但当你尝试将int添加给对象时,由于缺乏强类型系统的限制,可能要花费时间来调试类型错误。

下面有一些有用的tips可以帮助你理解JavaScript的类型机制。

1typeof

无论何时对变量的类型有疑问,都可以使用typeof运算符:

重点:对类型有疑问时,使用typeof。

2== vs ===

使用===时,类型都必须相同才能相等。

注意,可以使用!==用于检查强制类型的不等式:

重点:始终使用===进行判断,来避免出错。

3true&false判断

使用 ! 来判断true or false,比如以下情况:

null,undefined,0,""和false全部在我们使用!时返回true。当我们应用! 对于存在的东西,比如数字42或字符串“hello world”,我们会得到错误的结果。

这表明null,undefined,0,""和false都表示不存在或错误值,但不是以相同的方式。 0是一个数字,表示数量不存在。 ""是一个字符串,表示字符串中值不存在。false是一个布尔值,并且表示缺少true。 这可以用一个简单的类型来验证:

undefined和null更加棘手。 如下例所示,它们是不同的类型,具有相同的值,但是===比较会失败:

因为null是一个对象,所以我们可以给它添加一个数字。 然而,对于未定义的数字,添加一个数字会提示NaN。

将数字添加到null似乎看起来可行,但建议不要这样做!

虽然null是一个对象,但是当你向它添加一个数字时会得到一个数字。 然而,当你添加其他东西时,它会给你无厘头的字符串:

重点:

1. 当你检查真实性时你需要小心。使用===检查所有类型的潜在的false值,例如,如果(foo === undefined foo === null)... - 这会变得非常单调乏味。

2. 不要将东西添加到null。

3. 不要总是使用!运算符在检查所有的判断,原因你懂得->null,undefined,0,""和false。

--END --

如果觉得文章对你有帮助,点赞、转发一下,谢谢各位支持。

Copyright 2018 kovlento

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180223G06NWB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券