Indexeddb 序列成员的字符串化
根据 键路径是定义如何执行的DOMString或序列 从值中提取一个键。有效的密钥路径是以下路径之一:Indexeddb 序列成员的字符串化,indexeddb,Indexeddb,根据 键路径是定义如何执行的DOMString或序列 从值中提取一个键。有效的密钥路径是以下路径之一: 空字符串 标识符,它是与 从ECMAScript语言规范生成IdentifierName [ECMA-262] 由两个或多个标识符组成的DOMString 由句点分隔(ASCII字符代码46,U+002E句号) A 仅包含符合以下条件的字符串的非空序列 满足上述要求 根据步骤, 如果keyPath是一个序列,请运行以下子步骤: 让结果为新数组ECMAScript对象 对于keyPath序列
- 空字符串
- 标识符,它是与 从ECMAScript语言规范生成IdentifierName [ECMA-262]
- 由两个或多个标识符组成的DOMString 由句点分隔(ASCII字符代码46,U+002E句号)
- A 仅包含符合以下条件的字符串的非空序列 满足上述要求
toString()
方法)。然而,至少可以转换可字符串化对象(不确定布尔或数字原语),并且它们是可转换的
我是否在规范中遗漏了一些东西,这些东西表明在验证/输入/使用之前应该首先进行字符串化,如果是,在什么条件下?这发生在绑定ECMAScript和API的Web IDL层。例如,使用
createObjectStore()
API,输入字典定义为:
dictionary IDBObjectStoreParameters {
(DOMString or sequence<DOMString>)? keyPath = null;
boolean autoIncrement = false;
};
字典IDBObjectStoreParameters{
(DOMString或sequence)?keyPath=null;
布尔自增=假;
};
在执行的逻辑时,IDL层通过中定义的转换保证keyPath
的值为DOMString、序列或null。如果传递了无法转换的内容,WebIDL定义该方法将在到达API逻辑之前抛出