Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как узнать тонкости языка? (https://javascript.ru/forum/misc/31170-kak-uznat-tonkosti-yazyka.html)

TheChosenOne777 29.08.2012 01:38

Как узнать тонкости языка?
 
Как узнать тонкости языка javascript?
Спрашивать у разработчиков? Или это приходит с опытом, но хочется их знать и использовать уже сейчас? Расскажите..

Aetae 29.08.2012 04:53

http://javascript.ru/ecma
Прочитай спецификацию. Все тонкости детально.

bes 29.08.2012 13:14

Aetae, да, только с учётом того, что не все ей строго следуют, поэтому изучать также источники, указанные здесь http://learn.javascript.ru/pre-coding

melky 29.08.2012 13:43

Цитата:

Сообщение от bes (Сообщение 201374)
Aetae, да, только с учётом того, что не все ей строго следуют, поэтому изучать также источники, указанные здесь http://learn.javascript.ru/pre-coding

я когда-то эту статью переводил, когда учебник был ещё на англицком.

её немного подравняли, я говорил о JavaScript.ru как о "ещё одном хорошем ресурсе о JavaScript", сейчас этого нет :(

FINoM 29.08.2012 15:40

Я недавно для себя открыл, что индексы в объекте могут быть только строками.
for( var i in [1] ) alert( i + ' ' + typeof i )

Или так:
alert( typeof Object.keys( [ 1 ] )[ 0 ] )

TheChosenOne777 29.08.2012 15:41

Спасибо!

FINoM 29.08.2012 15:48

А еще больше не боюсь добавлять новые свойства в прототипы встроенных конструкторов (даже Object) благодаря defineProperty:
Object.defineProperty( Object.prototype, 'define', {
	value: function( key, descriptor ) {
			if( descriptor ) {
				Object.defineProperty( this, key, descriptor );
			} else {
				Object.defineProperties( this, key );
			}
		},
		enumerable: false
});

var o = {};
o.define('a', {get: function() { return 'ok' } });
alert(o.a)

bes 29.08.2012 16:29

Цитата:

Сообщение от FINoM
Я недавно для себя открыл, что индексы в объекте могут быть только строками.

http://es5.javascript.ru/x11.html#x11.8.7 в п.6 ToString

цепочка внутренних методов такая
[[HasProperty]] -> [[GetProperty]] -> [[GetOwnProperty]]
а им по восходящей передаётся строка

FINoM 29.08.2012 17:48

Цитата:

Сообщение от bes
http://es5.javascript.ru/x11.html#x11.8.7 в п.6 ToString

Хм, спасибо. Надо будет как-нибудь приучить себя читать спеки.


Часовой пояс GMT +3, время: 00:00.