Как использовать буквальные кавычки в JavaScript?

Это мой код:

const myFunction = () => {
   let winnerScreen = "images/winner.png";
   let winnerId = "winnerScreen";
   document.getElementById("output").innerHTML='<img id='+winnerId+" "+'src='+winnerScreen+'/>';
}

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

Кто-нибудь может мне помочь?

Если вы просто добавили свой код в сообщение в виде текста ...

Teemu 03.04.2018 09:59
Template Literals
Arman Charan 03.04.2018 10:02
Избегайте скриншотов для кода, пожалуйста.
Cranio 03.04.2018 10:06

Мне действительно трудно читать этот код из-за плохого контраста между ним и остальной страницей.

VLAZ 03.04.2018 10:08

вы хотите написать функцию в одну строчку?

Kristianmitk 03.04.2018 10:09

Прошу прощения за использование снимков экрана, это мой первый пост на этом форуме, и я не знал, что это правило, я сделаю это в своих следующих сообщениях.

Pieter Debaere 03.04.2018 10:12

Теперь вы можете отредактировать свой пост и заставить его следовать правилам. Не нужно ждать следующего вопроса. Голосование за закрытие.

Ingo Bürk 03.04.2018 10:14

Вы все еще можете редактировать свой текущий вопрос. Ввод фактического кода требует меньше усилий, чем создание снимка экрана. Это также помогает всем, кто хочет помочь вам, поскольку они могут просто скопировать и вставить его в свой ответ и внести изменения.

VLAZ 03.04.2018 10:15
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
8
147
5

Ответы 5

это будет однострочный шаблон с литералом:

const myFunction = () => document.getElementById('output').innerHTML = `<img id='${"winnerScreen"}' src='${"images/winner.png"}' />'`;


myFunction();
<div id = "output"></div>

Но в этом случае нет смысла использовать литерал шаблона, так как вы можете просто передать строки ..

const myFunction = () => document.getElementById('output').innerHTML = "<img id='winnerScreen' src='images/winner.png' />";

myFunction();
<div id = "output"></div>

ПРИМЕЧАНИЕ:

  • Вы можете записать строку, используя кавычки " и ' (как в последнем фрагменте):

    "<img id='winnerScreen' src='images/winner.png' />"

  • или только тип одинарной кавычки, такой как ', и использование экранирования строки \', выглядит следующим образом:

    '<img id=\'winnerScreen\' src=\'images/winner.png\' />'

Сделайте вот так. Используйте обратную кавычку и $.

let winnerId = 1;
let winnerScreen = 'https://unknownSource.com/uk.jpg'
var _str = `<img id = "${winnerId}" src  = "${winnerScreen}">`;
console.info(_str)

Если я попробую это сделать, появится следующее сообщение об ошибке: «Строковые шаблоны не поддерживаются текущей версией JavaScript». Я использую WebStorm 2017.2.4 с ECMAScript 5.1. Следует ли мне обновиться до ECMAScript 6 или есть какие-то причины для этого?

Pieter Debaere 03.04.2018 10:19

Вам нужно изменить версию js ecma6 из webstorm

brk 03.04.2018 11:05

Напишите строковый литерал, например:

document.getElementById('output').innnerHTML = `<img id=${winnerId} src=${winnerScreen} />`;

Но лучше поместить " вокруг атрибутов HTML:

document.getElementById('output').innnerHTML = `<img id = "${winnerId}" src = "${winnerScreen}" />`;

Или, если вы хотите, чтобы вся функция была в одной строке:

const myfunction = () => document.getElementById('output').innnerHTML = '<img id = "images/winner.png" src = "winnerScreen" />';

Но это немного глупо, не пытайтесь сохранить строки, вместо этого попробуйте сохранить читаемость кода.

Это все равно будет стоить мне 3 строчки, есть ли способ сделать это одной строчкой?

Pieter Debaere 03.04.2018 10:03

Что ты имеешь в виду? Это всего одна строчка. На самом деле нет никакого способа уплотнить код дальше, если вы это имеете в виду.

CertainPerformance 03.04.2018 10:04

Я думаю, он хочет, чтобы функция была однострочным

Kristianmitk 03.04.2018 10:10

Да, вся функция как одна строка :) это возможно?

Pieter Debaere 03.04.2018 10:11

@CertainPerformance большое спасибо за помощь и знания! :)

Pieter Debaere 03.04.2018 10:22

В новых версиях вы можете использовать обратные кавычки (`) и работать более или менее как в PHP, используя интерполяцию:

document.getElementById("output").innerHTML= `<img id = "${winnerId}" src = "${winnerScreen}">`

Помните, что:

  • атрибуты должны быть заключены в двойные кавычки
  • пожалуйста избегайте использования скриншотов для кода.

Извините, я новичок на этом форуме, буду делать заметки! :) И спасибо за помощь.

Pieter Debaere 03.04.2018 10:08

"атрибуты должны быть заключены в двойные кавычки" - одинарные кавычки тоже подходят - w3.org/TR/html4/intro/sgmltut.html#h-3.2.2

Kristianmitk 03.04.2018 10:28

Я предполагаю, что вы имеете в виду, как использовать кавычки в кавычках.

У вас есть 2 варианта котировок.

" и '.

Внутри каждого вы можете использовать другой.

document.getElementByID('output').innerHTML = "<img id='winnerScreen' src='images/winner.png'>";

Мне было интересно, почему все остальные ответы касались шаблонных литералов, когда они уже существуют и их легче сделать. Я просто хочу добавить, что вы также можете избегать кавычек - "this is a string with \"quoted\" text" - также работает с обоими типами кавычек.

VLAZ 03.04.2018 10:25

Потому что здесь задействованы переменные, и ваш ответ полностью игнорирует этот факт.

Cranio 03.04.2018 10:28

@Cranio Подсказка состояла из одной строчки. Возможно, он не хочет переменных. Я еще не мог комментировать. И я - нет - сейчас.

deEr. 03.04.2018 10:30

@Cranio вопрос не делает очевидным, что переменные нужный. Все, что он говорит, это то, что ему нужно, чтобы этот код был в одной строке, что было бы, если бы вы удалили переменные. Если вы используете шаблонный литерал, вам по-прежнему нужны переменные, поэтому это не будет одной строкой. В противном случае нет реальной причины нет использовать простую строку. Вопрос в его нынешнем виде не может быть истолкован как «как мне включить переменные в строку» - он буквально просто упоминает кавычки.

VLAZ 03.04.2018 10:35

Другие вопросы по теме