Javascript Chrome:document.cookie的顺序有保证吗?

Javascript Chrome:document.cookie的顺序有保证吗?,javascript,google-chrome,firefox,standards,Javascript,Google Chrome,Firefox,Standards,.然后是: document.cookie='foobar' 在色度上测试时,总是给我0 Chrome的订单有保证吗 (也可能对ECMAScript/Firefox等感兴趣) < P>我认为你可以考虑文档。Cookie < /C>作为某种数组。但是document.cookie只是一个字符串 'foobar'。indexOf('foobar')返回0,因为在索引0处找到了foobar。否,顺序不保证 document.cookie是具有本机setter和getter函数的访问器属性。如果设置值

.然后是:

document.cookie='foobar'
在色度上测试时,总是给我
0

Chrome的订单有保证吗


(也可能对ECMAScript/Firefox等感兴趣)

< P>我认为你可以考虑<代码>文档。Cookie < /C>作为某种数组。但是
document.cookie
只是一个
字符串


'foobar'。indexOf('foobar')
返回
0
,因为在索引0处找到了
foobar

否,顺序不保证

document.cookie
是具有本机setter和getter函数的访问器属性。如果设置值,将添加/更新单个cookie。如果获得该值,将返回所有cookie的分号分隔列表

列表返回的顺序(据我所知)是未定义的行为。“文档对象模型(DOM)2级HTML规范”中仅说明:

读取此属性时,所有cookie都作为单个字符串返回,每个cookie的名称-值对连接到名称-值对列表中,每个列表项由“;”分隔(分号)

通常(在Chrome/Firefox/Edge上测试)首先使用
document.cookie设置的cookie会首先返回。因此,在您的情况下,如果在设置“foobar”之前设置了另一个cookie,那么“foobar”将不会位于字符串索引0处

console.log(document.cookie.indexOf('foobar'))

有趣的是,似乎使用
set cookie
标题设置的cookie放在使用
document.cookie
设置的cookie之后,即使它们是先设置的。可以找到小提琴。

是的。。q是指是否保证这样做。
document.cookie='anothercookie=anothercookie';
document.cookie='foobar=foobar';

console.log('cookie', document.cookie); // cookie anothercookie=anothercookie; foobar=foobar
console.log('index', document.cookie.indexOf('foobar')); // index 29