我发现了这句话:
userName = document.cookie.split("=")[1];
阅读有关拆分声明here at w3schools的内容。这说明分裂的语法是
string.split(separator, limit)
。然后在第一个parens之后方括号是什么。意思 ?
如果这是真的split
函数是什么样的?
答案 0 :(得分:5)
String.split(separator, limit)
返回一个数组。在Javascript中,您可以使用方括号按索引访问数组值。数组从零开始,0
是第一个元素,1
是第二个元素,依此类推。
相当于您的代码:
var arr = document.cookie.split("=");
userName = arr[1];
这将document.cookie
与等号(=
)分开,并从中获取第二个元素(索引1)。 document.cookie
是document
对象的特殊属性(数据类型:String),其中包含由;
字符分隔的网页的所有Cookie。例如。如果document.cookie包含name=Adam
,则数组arr
将包含值name
和Adam
。第二个存储在userName
。
请注意,如果cookie包含多个值,或者该值包含多个等号,则它将不起作用。考虑下一个案例:
document.cookie
包含name=Adam; home=Nowhere
。使用上面的代码,这会使userName
包含Adam; home
,因为字符串由等号分隔,然后是第二个值。document.cookie
包含home=Nowhere; name=Adam
。这会导致userName
包含Nowhere; name
document.cookie
包含name=Adam=cool
。在这种情况下,userName
将是Adam
而不是Adam=cool
。此外,w3schools是not that reliable。使用更多的授权来源,如Mozilla开发者网络:
答案 1 :(得分:2)
split
函数返回由给定分隔符分割的array
个字符串。使用方括号,您将访问该(返回)数组的第n个元素。
如果您熟悉Java,那么它的行为与String.split()方法相同。
答案 2 :(得分:1)
它获取结果数组的第二个索引
同样:
var split = document.cookie.split("=");
var userName = split[1];
答案 3 :(得分:1)
split返回一个字符串数组。所以方括号意味着从返回的数组中获取第二个字符串。
答案 4 :(得分:1)
您提供的代码中的方括号是访问split()
返回的数组的第二个元素。函数本身返回一个数组。该代码与以下内容相同:
var temp = document.cookie.split("=");
userName = temp[1];
答案 5 :(得分:1)
Split会返回一个数组,例如[1,2,3]。如果在它之后提供方括号,它将返回括号中的指定键,在这种情况下userName将为2
答案 6 :(得分:1)
你shouldn't be using w3schools,但是......
在JavaScript中,函数参数是可选的,可以提供比函数预期更少的参数。然后,函数中的额外参数是未定义的。有些函数被编程来处理这种可能性,而string.split
就是其中之一。
另一部分与split
返回数组的事实有关。然后可以使用方括号表示法对数组进行索引,因此在函数调用之后使用[1]
。