Правда ли, что в основных браузерах нет гарантий, что следующие теги script всегда будут выполняться как последовательно, так и в порядке объявления? т.е. следует ли предположить, что следующий код не всегда будет давать x == 'ab' в предупреждении?
<head>
<script type="text/javascript">
//tag A
var x = x || ''; x += 'a';
</script>
<script type="text/javascript">
//tag B
var x = x || ''; x += 'b';
</script>
</head>
<body>
<script type="text/javascript">
alert('x='+x);
<script>
</body>
... и возможно, что x вместо этого будет одним из следующих:
- 'ba' - если тег B выполняется до A
- 'a' или 'b' - условие гонки, в котором A и B выполняются параллельно (хотя кажется, что этот поток четко говорит о том, что браузеры выделяют только один поток JS)