Действительный код JavaScript, который НЕ является действительным кодом ActionScript 3.0?

Большая часть кода JavaScript является также синтаксически действительным кодом ActionScript 3.0. Однако существуют некоторые исключения, который приводит меня к моему вопросу:

Который создает/показывает в JavaScript, синтаксически недопустимы в ActionScript 3.0? Обеспечьте конкретные примеры кода JavaScript (основной код JavaScript без использования API DOM), который НЕ является действительным кодом ActionScript 3.0.

9
задан knorv 23 March 2010 в 14:00
поделиться

6 ответов

Вы можете объявить переменную в JS без использования var утверждение. В ActionScript 3 оператор var всегда требуется .

Следующее является допустимым JS, но вызовет ошибку компилятора в AS3:

var foo = 6;
bar = "bar";

Вы также можете повторно объявить переменную в JS с одной областью видимости без ошибки:

var x = 5;
var x;

В AS3 вы можете только объявить переменную один раз для каждого прицела.

8
ответ дан 4 December 2019 в 08:51
поделиться

ActionScript 1 намного ближе к Javascript. ActionScript 3 следует ныне несуществующей спецификации ECMAScript 4 .

2
ответ дан 4 December 2019 в 08:51
поделиться

Очевидными из них являются ключевые слова ECMAScript 4, которые не были зарезервированными словами в будущем в ECMAScript 262 3rd Edition:

// oops!
var let   = "Hello";
var yield = "World";
6
ответ дан 4 December 2019 в 08:51
поделиться

Во-первых, метод eval() не будет работать.

Кроме того, конструктор RegExp() не работает, по крайней мере, со строками. Другими словами, вы не можете сказать:

var rex:RegExp = new RegExp("[a-zA-Z0-9]+","gim");

Вы должны написать это так:

var rex:RegExp = new RegExp(/[a-zA-Z0-9]+/gim);

Другими словами, вы не можете сделать подстановку переменных для частей строкового аргумента.

2
ответ дан 4 December 2019 в 08:51
поделиться

Ну, вы не можете использовать alert (и некоторые другие глобальные функции JS), onmouseover, onload и т.д. (обработчики событий JS), все, что связано с формой или браузером (как вы предлагаете). Вы не можете копировать и вставлять JS код в AS3 класс, потому что AS3 сильно типизирован и вы можете получить ошибки компилятора (более того, в JS у вас вообще нет классов).

2
ответ дан 4 December 2019 в 08:51
поделиться

AS3 является более сильным типизированным и традиционно ОО языком, чем javascript (и AS2), поэтому все манипуляции с прототипами исключены. Это, вероятно, самая большая разница, IMO, поскольку это означает, что что-то вроде jQuery не может действительно работать в AS3.

Как было отмечено, локальные переменные должны быть объявлены с помощью var. Кроме того, нетипизированные переменные и повторно объявленные переменные выдают предупреждения компилятора.

Как правило, больше примеров обратного (AS3 код не валиден в javascript).

4
ответ дан 4 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: