问题描述
我时不时地看到这种模式:
if (!obj[key]) {
// key does not exist inside object
obj[key] = ...
} else {
// maybe do something else with obj[key]
}
但我觉得这是非常错误的。如果实际上 obj[key] 具有值 false
或 ''
怎么办?
那么代码对我来说没有任何意义。
我经常看到这个有什么原因吗?为什么人们不使用 .hasOwnproperty()
来检查 key
是否作为对象的属性存在?
解决方法
您应该使用 ExifTool Version Number : 10.80
File Name : dummy.jpg
Directory : /home/me
File Size : 452 kB
File Modification Date/Time : 2021:02:02 14:41:53+02:00
File Access Date/Time : 2021:02:02 14:42:52+02:00
File Inode Change Date/Time : 2021:02:02 14:41:58+02:00
File Permissions : rw-r--r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
JFIF Version : 1.02
Resolution Unit : None
X Resolution : 1
Y Resolution : 1
Image Width : 2480
Image Height : 3507
Encoding Process : Baseline DCT,Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Image Size : 2480x3507
Megapixels : 8.7
运算符:
in
如果你想特别测试对象实例的属性(而不是继承的属性),使用hasOwnProperty:
"key" in obj // true,regardless of the actual value
对于未定义hasOwnProperty和key未定义的方法之间的性能比较,请检查此reference
,你是对的,如果你正在检查 sudo npm install n -g
道具是否存在,那么绝对不应该使用它,有更好的选择,例如 sudo n stable
OR
sudo n latest
或 key
运算符,对于例子:
.hasOwnProperty