请求的数据类型{ }{[ ]} 解析

一、案例区别

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 是一个对象。

上一篇:在linux上如何执行带有目录的命令


下一篇:try...catch 未捕获到 Promise 异常的问题-2,原因分析