• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

JS - eval do zmiennej

VPS Starter Arubacloud
0 głosów
290 wizyt
pytanie zadane 20 maja 2022 w JavaScript przez Jcob2222 Użytkownik (500 p.)

Witam,

mam pytanie odnośnie funkcji eval() w JS. Chciałbym wykonać przykładowo taki kod

eval(2+2);

i chciałbym aby wynik czyli 4, był zapisywany do zmiennej. Ma ktoś pomysł jak to zrobić?

komentarz 21 maja 2022 przez VBService Ekspert (255,800 p.)
edycja 21 maja 2022 przez VBService
<textarea>
  var r=3; var pi=3.14; pi * r**2   
</textarea>
<pre></pre>

<script>
  const v = document.querySelector('textarea').value.trim();
  const ev= eval(v);
  document.querySelector('pre').textContent = ev;
  console.log(ev);
</script>

komentarz 21 maja 2022 przez VBService Ekspert (255,800 p.)
<textarea cols=50 rows=1>
  pi * r**2     
</textarea>
<div>pi = <input id=pi value="3.14"></div>
<div>r = <input id=r></div>
<button>Licz</button>

<pre></pre>

<script>
  document.querySelector('button').onclick = _=> {
    const v = document.querySelector('textarea').value.trim();
    const pi = document.querySelector('#pi').value.trim() || 0;
    const r = document.querySelector('#r').value.trim() || 0;
    const ev= eval(v);
    document.querySelector('pre').textContent = ev;
    console.log(ev);
  }
</script>

2 odpowiedzi

0 głosów
odpowiedź 20 maja 2022 przez rafal.budzis Szeryf (85,340 p.)

Przypisać go do zmiennej?

const result = eval(2+2); // tak działa

Może daj cały przykład jak to robisz ;)  Bo pewnie zamiast 2+2 masz coś innego ;) 

komentarz 20 maja 2022 przez Jcob2222 Użytkownik (500 p.)
No właśnie tak nie mogę, zwraca "undefined". Fakt, mam tam coś innego, jest to textarea.value.
1
komentarz 20 maja 2022 przez rafal.budzis Szeryf (85,340 p.)
Pokaż cały kod może textarea źle pobierasz. Chciałbym się upewnić i zobaczyć całość ;)
0 głosów
odpowiedź 20 maja 2022 przez Wiciorny Ekspert (277,020 p.)

The eval() function evaluates JavaScript code represented as a string. Akceptuje wskazany string, eval()jest właściwością funkcji obiektu globalnego.
eval()to niebezpieczna funkcja, która wykonuje przekazany kod z uprawnieniami wywołującego.
możesz tak 

  var getEval = eval("3+4");
  console.log(getEval) // 7

albo możesz też z zmienną
 

var customJSfromServer = "2+2+2;"
var evalValue = eval(customJSfromServer);
alert(evalValue) ;// should be "6";

 

komentarz 20 maja 2022 przez Jcob2222 Użytkownik (500 p.)
Gdyby to było takie proste to bym nie pytał. Jako wynik takiego czegoś dostaję "undefined". Próbowałem już wcześniej
komentarz 20 maja 2022 przez Wiciorny Ekspert (277,020 p.)

to dziwne bo co innego widze na konsoli https://playcode.io/901100.
To jest takie proste, wiec twoje textarea.value. jest undefined.

Text area nie ma właściwości value
https://www.w3schools.com/tags/tag_textarea.asp

komentarz 20 maja 2022 przez Jcob2222 Użytkownik (500 p.)
Jak odwołujesz się przez querySelector do jakiejś textarea to zwraca stringa który jest treścią tego pola tekstowego. A co do pierwszego, to faktycznie to śmiga ale nie u mnie w kodzie. Dziwne.
3
komentarz 20 maja 2022 przez rafal.budzis Szeryf (85,340 p.)

w3schools jest do d*** ;) 

https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement

Tutaj value jest ;) 

Podobne pytania

0 głosów
2 odpowiedzi 389 wizyt
pytanie zadane 20 marca 2020 w JavaScript przez saseq Nowicjusz (140 p.)
+1 głos
1 odpowiedź 340 wizyt
pytanie zadane 14 sierpnia 2019 w JavaScript przez Bartłomiej Bolesta Obywatel (1,630 p.)
0 głosów
1 odpowiedź 117 wizyt
pytanie zadane 14 czerwca 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)

92,964 zapytań

141,930 odpowiedzi

321,162 komentarzy

62,298 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...