• 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
249 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 (251,210 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 (251,210 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 (269,120 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 (269,120 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 280 wizyt
pytanie zadane 20 marca 2020 w JavaScript przez saseq Nowicjusz (140 p.)
+1 głos
1 odpowiedź 270 wizyt
pytanie zadane 14 sierpnia 2019 w JavaScript przez Bartłomiej Bolesta Obywatel (1,630 p.)
0 głosów
1 odpowiedź 97 wizyt
pytanie zadane 14 czerwca 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...