Выдача рандомного изображения с помощью js

В папке "@3" лежат 2 (в перспективе больше 150) изображения формата JPEG, их имена состоят из чисел, т. е. первое изображение - 1.jpg, второе - 2.jpg и т. д.. Нужна страница, которая выдаст одно случайное из 2 (в перспективе из более 150) изображений. Мой код почему-то не работает. Код:

<html>
<head>
<title>Алло ты</title>
</head>
<body>
<script>
function getImage() {
  const random = Math.floor(Math.random() * 2);   
  return '<img src="\@3\'+random+'.jpg" border="0" />';
}

document.getElementById("1").innerHTML = getImage();
document.getElementById("2").innerHTML = getImage();
</script>

<div>
  <div id="1"></div>
  <div id="2"></div>
</div>

</body>
</html> 

Ответы (1 шт):

Автор решения: wololo

Символ обратной косой черты (обратный слеш) \ используется для экранирования символов. Обратная косая черта как бы "сливается" с последующим символом (или даже несколькими символами) в единый символ. Посмотрите пример:

console.log("\"\'\\\n\\\u0401");

Чтобы вставить в строку одиночный обратный слеш, напишите его дважды: "\\". (Ещё про специальные символы на learn.javascript.ru)

Также данная конструкция Math.floor(Math.random() * 2); возвращает целое число из отрезка [0, 1], а номера файлов у вас начинаются с единицы. В общем, как-то так:

    function getImage0() {
        const random = Math.floor(Math.random() * 2) + 1;   
        return '<img src=".\\@3\\' + random + '.jpg" border="0" />';
    }
    function getImage1() {
        const random = Math.floor(Math.random() * 2) + 1;   
        return `<img src=".\\@3\\${random}.jpg" border="0" />`;
    }
    
    console.log( getImage0() );
    console.log( getImage0() );
    console.log( getImage1() );
    console.log( getImage1() );

→ Ссылка