根据MDN
public func +<K, V>(lhs: [K:V], rhs: [K:V]) -> [K:V] {
var lhs: [K:V] = lhs
for (key, value) in rhs {
lhs[key] = value
}
return lhs
}
let array = ["x=5", "y=7", "z=10"]
let dictionary = array.map({ $0.componentsSeparatedByString("=") }).reduce([:]) { $0 + [$1[0]: $1[1]] }
print(dictionary) // ["y": "7", "x": "5", "z": "10"]
你可以看到:
var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]);
var timeoutID = window.setTimeout(code, [delay]);
结果是'1'然后是'2'。
setTimeout(function() {
alert(2);
}, 0);
alert(1);
然而,结果是'2'然后是'1'。
导致差异的原因是什么?
答案 0 :(得分:1)
在
的情况下setTimeout(alert(2), 0);
alert(1);
执行第一个alert(2)
并将其返回值(即undefined
)传递给setTimeout
函数,而在第一个示例中,函数传递给setTimeout
函数