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

JS - eval do zmiennej

Cloud VPS
0 głosów
429 wizyt
pytanie zadane 20 maja 2022 w JavaScript przez Jcob2222 Użytkownik (590 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 (256,600 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 (256,600 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,700 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 (590 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,700 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 (281,450 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 (590 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 (281,450 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 (590 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,700 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 535 wizyt
pytanie zadane 20 marca 2020 w JavaScript przez saseq Nowicjusz (140 p.)
+1 głos
1 odpowiedź 604 wizyt
pytanie zadane 14 sierpnia 2019 w JavaScript przez Bartłomiej Bolesta Obywatel (1,630 p.)
0 głosów
1 odpowiedź 151 wizyt
pytanie zadane 14 czerwca 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)

93,457 zapytań

142,453 odpowiedzi

322,722 komentarzy

62,837 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

Kursy INF.02 i INF.03
...