根据以下链接的文档,get()
只有一个参数:key
。在描述中是:
标识要检索的记录的密钥。这也可以是一个 IDBKeyRange在这种情况下,函数会检索第一个存在的函数 该范围内的价值。
在下面的示例代码中,使用get(Number("1"))
将找到记录。仅使用get("1")
,结果为空。 (主/唯一键是' num'并且是自动增量。)
function removeRecord(num) {
var transaction = db.transaction(['queueStore'], 'readwrite');
var store = transaction.objectStore('queueStore');
// Check if the record exists & to identify the record
store.get(Number(num)).onsuccess = function(event) {
/* ^ here this works */
var result = event.target.result;
if(result) {
number = result.number;
}
};
}
我无法在Indexed Database API或搜索中找到答案。
Number完成了什么?
答案 0 :(得分:3)
作为函数调用时的Number构造函数(即没有hotel_name = soup.select(".title")
price_elems = soup.select(".price")
)将参数转换为数字并返回该值。因此,new
会返回数字Number("1")
。
明确编码1
没有意义;您只需使用Number("1")
即可。如果您知道可能获得字符串值,那么它很有用。在您的情况下,API正在对您的密钥执行精确比较,如果真实密钥是一个数字,那么它永远不会1
任何字符串。
一元===
运算符基本上做同样的事情,因此+
也是+"1"
。有些人更愿意明确地致电1
,因为它更加明确。
Number()
函数也会将字符串转换为数字,但与parseFloat()
构造函数或一元Number()
不同,+
将允许对于输入字符串末尾的非数字内容:
parseFloat()