以下は、1から40までの10個の乱数のリストを、繰り返さずに生成するJavaScript関数である：

```javascript
function generarLista() {
  let lista = [];
  while (lista.length < 10) {
    let numero = Math.floor(Math.random() * 40) + 1;
    if (!lista.includes(numero)) {
      lista.push(numero);
    }
  }
  return lista;
}
```

この関数はwhileループを使って、リストの要素が10個になるまで乱数を生成します。
ループの中で、Math.random()関数を使用して1から40までの乱数を生成し、Math.floor()で切り捨てます。
次に、includes()メソッドを使用して、その番号がすでにリストにあるかどうかをチェックします。
リストにない場合は、push()メソッドで追加します。
最後に、リストの要素が10個になったら、returnで返します。
Aquí tienes una función en JavaScript que genera una lista de diez números al azar entre uno y cuarenta sin repetirlos:

```javascript
function generarLista() {
  let lista = [];
  while (lista.length < 10) {
    let numero = Math.floor(Math.random() * 40) + 1;
    if (!lista.includes(numero)) {
      lista.push(numero);
    }
  }
  return lista;
}
```

Esta función utiliza un bucle while para generar números al azar hasta que la lista tenga diez elementos.
Dentro del bucle se genera un número al azar entre uno y cuarenta utilizando la función Math.random() y se redondea hacia abajo con Math.floor(). 
Luego se verifica si el número ya está en la lista utilizando el método includes(). 
Si el número no está en la lista, se agrega con el método push(). 
Finalmente, cuando la lista tiene diez elementos, se devuelve con return.