' Number()'的目的是什么?在indexedDB get()方法中

时间:2016-07-09 13:49:52

标签: javascript indexeddb

根据以下链接的文档,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完成了什么?

1 个答案:

答案 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()