一、案例区别
1.1源码
var saveInBrowserDeviceInfoStr = localStorage.getItem('SaveInBrowserDeviceInfo');
var saveInBrowserDeviceInfo;
if (saveInBrowserDeviceInfoStr) {
console.log('存放在浏览器的设备信息(字符串):' + saveInBrowserDeviceInfoStr);
saveInBrowserDeviceInfo = JSON.parse(saveInBrowserDeviceInfoStr);
if (Object.keys(saveInBrowserDeviceInfo).length > 0) {
console.log('存放在浏览器的设备信息(对象):' + JSON.stringify(saveInBrowserDeviceInfo));
}
}
var saveInBrowserDeviceInfoStr = localStorage.getItem('SaveInBrowserDeviceInfo');
var saveInBrowserDeviceInfo;
if (saveInBrowserDeviceInfoStr) {
console.log('存放在浏览器的设备信息(字符串):' + saveInBrowserDeviceInfoStr);
saveInBrowserDeviceInfo = JSON.parse(saveInBrowserDeviceInfoStr);
if (saveInBrowserDeviceInfo.length > 0) {
console.log('存放在浏览器的设备信息(对象):' + saveInBrowserDeviceInfo);
}
}
1.2返回数据类型
1.2.1键值对的对象
{
"deviceIdOnly": "E01",
"deviceMac": "88888888",
"deviceName": "设备名",
"devicePosition": "教室",
"deviceRemark": "我的测试硬件",
"localIp": "147.147.174.22",
"networkWifi": "网络",
"publicIp": "127.0.0.1",
"userEmail": "123a@ggb.top"
}
1.2.2存对象的数组
[{"idPromise":"","fileName":"2otEhB6er/test/test11.mp3","songName":"当你老了","artistName":"李健","coverImage":"2otEhB6er/test/test11.jpg"},{"idPromise":"","fileName":"2otEhB6er/test/test22.mp3","songName":"月半小夜曲","artistName":"李克勤","coverImage":"2otEhB6er/test/test22.jpg"},{"idPromise":"","fileName":"2otEhB6er/test/test33.mp3","songName":"老街","artistName":"李荣浩","coverImage":"2otEhB6er/test/test33.jpg"},{"fileName":"1bTp41xz/32b2404101041305228242好妹妹-晚安.mp3","songName":"晚安","artistName":"好妹妹","coverImage":"1mEY6b01e/32b2404101041143762030mmexport1712658610949.jpg","idPromise":"71"}]
1.3说明
这两段源码的区别在于它们如何检查 saveInBrowserDeviceInfo
是否包含数据,并且它们期望 saveInBrowserDeviceInfo
的数据类型不同。
第一段代码使用了 Object.keys(saveInBrowserDeviceInfo).length
来检查 saveInBrowserDeviceInfo
对象是否包含键值对,从而确定对象是否为空。这段代码期望 saveInBrowserDeviceInfo
是一个对象。
第二段代码使用了 saveInBrowserDeviceInfo.length
来检查 saveInBrowserDeviceInfo
数组的长度是否大于 0,从而确定数组是否为空。这段代码期望 saveInBrowserDeviceInfo
是一个数组。
因此,这两段代码的区别在于它们期望的数据类型不同。根据你之前提供的信息,saveInBrowserDeviceInfo
是一个对象。