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

JS - eval do zmiennej

Object Storage Arubacloud
0 głosów
256 wizyt
pytanie zadane 20 maja 2022 w JavaScript przez Jcob2222 Początkujący (480 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 (253,340 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 (253,340 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,260 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 Początkujący (480 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,260 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 (270,150 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 Początkujący (480 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 (270,150 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 Początkujący (480 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,260 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 292 wizyt
pytanie zadane 20 marca 2020 w JavaScript przez saseq Nowicjusz (140 p.)
+1 głos
1 odpowiedź 277 wizyt
pytanie zadane 14 sierpnia 2019 w JavaScript przez Bartłomiej Bolesta Obywatel (1,630 p.)
0 głosów
1 odpowiedź 100 wizyt
pytanie zadane 14 czerwca 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...