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