more javascript
Nov. 9th, 2008 06:44 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
for (var idx in ['uno', 'dos', 'tres']) {
println (typeof idx + " " + idx);
}
string 0
string 1
string 2
Explanation
JavaScript does not have arrays. Period. What it has is an imitation of arrays. Namely, objects that have keys (all keys in objects are strings) that represent numbers.
var x = ['uno', 'dos', 'tres'];
x[3.999] = 'casi cuatro';
x[-1] = 'minus uno';
println(x.length);
for (var idx in x) {
println(idx + "->" + x[idx]);
}
(try it on testbed)
You can pass anything as an index; it is converted to a string.
So, I guess, iterables or streams or continuations should be implemented in JavaScript without using arrays.
no subject
Date: 2008-11-10 03:59 am (UTC)no subject
Date: 2008-11-10 07:43 am (UTC)no subject
Date: 2008-11-10 04:09 am (UTC)no subject
Date: 2008-11-10 04:33 am (UTC)Смотри, речь идёт о том, что массивов-то в джаваскрипте нету! А есть их имитация.
no subject
Date: 2008-11-10 05:23 am (UTC)no subject
Date: 2008-11-11 03:16 am (UTC)Это я знаю. Но почему я должен догадываться, что (var idx in x) перебирает ключи? Когда хотят имитировать массивы, обычно хотят (по умолчанию) значения перебирать.
no subject
Date: 2008-11-11 04:03 am (UTC)no subject
Date: 2008-11-11 08:45 am (UTC)"вы этого хотели, вот вам""ты скажи, ты скажи, чё те надо, чё те надо - я те дам, я те дам, чё ты хошь" - можно?no subject
Date: 2008-11-11 04:44 pm (UTC)no subject
Date: 2008-11-11 05:02 pm (UTC)no subject
Date: 2008-11-10 07:28 am (UTC)no subject
Date: 2008-11-10 08:16 am (UTC)no subject
Date: 2008-11-10 09:21 am (UTC)no subject
Date: 2008-11-10 12:24 pm (UTC)no subject
Date: 2008-11-10 03:57 pm (UTC)var a = ['uno', 'dos'];
a.zero = 'zero';
a['2'] = 'tres';
alert(a.length);
for (var idx in a) {
alert(typeof idx + " " + idx);
}
http://andrewdupont.net/2006/05/18/javascript-associative-arrays-considered-harmful/
no subject
Date: 2008-11-10 04:17 pm (UTC)А этот Дюпон просто не въезжает.
no subject
Date: 2008-11-10 04:40 pm (UTC)no subject
Date: 2008-11-10 06:40 pm (UTC)I'd rather have Python or Lua as browser built-in language. No chance, though.
no subject
Date: 2008-11-11 04:45 pm (UTC)no subject
Date: 2008-11-11 05:57 pm (UTC)JS is conceptually fine, on the lower level. But its syntax is not the best of breed. (I wonder if JS could have a documented "VM" level for plugging in different syntaxes.)