2014-11-04 3 views
0

мне было интересно, если это возможно, чтобы изменить «Бэтмена» текст в JavaScript Batman Шутка в ASCII, а затем преобразовать его и он появится в браузереJavaScript ASCII к тексту

Оригинальная шутка

javascript:Array(16).join("lol" - 1) + "Batman" 

это может быть изменено на что-то вроде

javascript:Array(16).join("lol" - 1) + [66, 97, 116, 109, 097, 110].forEach(function(e) { document.write(String.fromCharCode(e)); }); 

, где [66, 97, и т.д.] являются ASCII коды для Batman. Это не удается, потому что объект документа не существует в пустое окно браузера.

(PS Вы можете удалить, если это не подходит, то только для удовольствия)

ответ

1

Вы дону Фактически, нужно использовать какой-либо цикл или итератор для вашего массива, String.fromCharCode фактически примет столько символов, сколько вы хотите его предоставить. Так что это будет работать нормально:

javascript:Array(16).join(-'.') + String.fromCharCode(66, 97, 116, 109, 097, 110); 

Однако, если вы хотите позвонить String.fromCharCode для каждого элемента массива, вы можете. Каждая функция JavaScript может быть вызвана с помощью Function.prototype.apply, который будет запускать функцию для каждого элемента массива:

javascript:Array(16).join("lol" - 1) + String.fromCharCode.apply(this,[66, 97, 116, 109, 097, 110]); 

Кроме того, цель "lol" - 1 заключается в попытке создать плохой номер (с NaN или не число). Если вы хотите немного запутать вещи, вы можете использовать любую математическую операцию для неизмеримой строки. Например:

javascript:Array(16).join(-'.') + String.fromCharCode.apply(this,[66, 97, 116, 109, 097, 110]) 

потому что -'.' является проникнута, как 0 - '.', который не имеет никакого смысла, так это его NaN.

+0

спасибо Уоррен, отличный ответ! –

0

Вы можете просто сделать:

javascript:var str='';[66, 97, 116, 109, 097, 110].forEach(function(e) { str+= (String.fromCharCode(e)); }); Array(16).join("lol" - 1) + str; 

Или:

javascript:Array(16).join("lol" - 1) + [66, 97, 116, 109, 097, 110].map(function(e) { return (String.fromCharCode(e)); }).join(''); 
Смежные вопросы