Create a simple calculator using HTML, CSS, JavaScript

Поделиться
HTML-код
  • Опубликовано: 21 окт 2020
  • Let's create a cool calculator with HTML, CSS, JavaScript. This project is aimed to help beginners, who just started their javascript / frontend developer journey.
    Please leave feedback in the comments, so I can improve my content to help you guys out more.
    Starting project: github.com/javascriptacademy-...
    Final project: github.com/javascriptacademy-...
    Where you can find me?
    🔗 Links:
    * 🍺 Support free education and buy me a beer: ko-fi.com/adamnagy
    * 💬 Discord: / discord
    * 📧 Newsletter: www.getrevue.co/profile/dev_a...
    * ✍️ Blog: dev.to/javascriptacademy
    * 🐦 Twitter: / dev_adamnagy
    * 📷 Instagram: / javascriptacademy

Комментарии • 261

  • @JsAcademyOfficial
    @JsAcademyOfficial  Год назад +1

    New web development tutorial from me: Memory card game using Javascript, HTML, and CSS: 🔥
    ruclips.net/video/xWdkt6KSirw/видео.html

  • @imnas6424
    @imnas6424 2 года назад +7

    Really great tutorial. Thank you very much. I've just fiinished js course and wanted to practice by making so calculator but all the videos on ytb are so overwhelming. Thankfully I found your video and in one hour ish I finished this project. Now I'm confident to make one calculator by my own

  • @JsAcademyOfficial
    @JsAcademyOfficial  2 года назад +6

    If you enjoyed the video and want to learn more, feel free to check out my coding projects tutorials playlist:
    ruclips.net/p/PL1tUyORvTAreSCSnxhz1-CPJVlbHZveBN

    • @nonEuclideanExplosive
      @nonEuclideanExplosive Год назад

      my code doesnt work text doesnt appear is JS just that bad that other people's code doesnt work?

    • @ahmedlaghari389
      @ahmedlaghari389 Год назад

      thank you very much, subscribed

  • @totzisn
    @totzisn 2 года назад +21

    Thank you so much for this tutorial! it was simple and very practicle im new to javascript and css and html and this was a great video for me to learn! keep it up!

  • @reginaldamedee7433
    @reginaldamedee7433 2 года назад +5

    Subscribed! The eval function makes this much easier. I also had to look up the difference between innerHTML and innerText. Thank you for this tutorial!

    • @scpf2360
      @scpf2360 Год назад

      Don't Use eval() To Be Safer

  • @bishounenbrat8171
    @bishounenbrat8171 Год назад +12

    I can't believe how easy this was! You're a really good teacher.

    • @rfryanfavour4369
      @rfryanfavour4369 Год назад +1

      Lol mee too 😅lol but I'll look for a way to counter that Eval expression

    • @JohnStockton7459
      @JohnStockton7459 Год назад

      Its always easy copying someone else code, try building it yourself 😂

  • @marcomacaluso7724
    @marcomacaluso7724 2 года назад +6

    easily understandable, short so its impossible to get distracted and just delivered really well. great video, thanks

  • @StephenBeale
    @StephenBeale Год назад +1

    really nice, thanks. Loved the scale and speed - a great confidence builder. One tip for presentation - when you are working at the bottom of the screen, (e.g. @ 4:52 for about 30 seconds ) the player bar pops up and obscures your work, especially when I am flicking back and forth between YT and VS Code. Just a small thing but would help to follow along if most work is closer to the middle. Cheers.

  • @cyriljephery2662
    @cyriljephery2662 Год назад

    Thanks a lot for this tutorial, I'm learning Javascript and i needed a project to start with... this was simplified and precise....Subscribed

  • @ampzmeter
    @ampzmeter Год назад +1

    Subscribed! Awesome video, Iv just started my Java script module and want to try making a calculator as a mini project. Will definitely be watching the rest of your work!

  • @andreacassotti2561
    @andreacassotti2561 2 года назад

    Thank you! I have never seen Javascript in action before and after this video it looks easier

  • @sw33ws
    @sw33ws Год назад +25

    If you want to make the eval part a bit safer, you can add a Regex at the end like this
    output.innerText = eval(output.innerText.replace(/[^-+/*\d]/g, ''));
    This will make it so it only accepts numbers and the special characters included in the script

  • @darwinraralio468
    @darwinraralio468 2 года назад

    a big help. im still starting to learn. the delivery is easy to understand. thank you very much

  • @gamamidia.youtube
    @gamamidia.youtube 2 года назад

    Great tutorial, thank you so much, I'm surely gonna watch more videos from you!!!

  • @shuvambiswas1347
    @shuvambiswas1347 5 месяцев назад

    Absolutely simple and exceptionally beginner friendly tutorial. Kudos to you!

  • @lungelomkhize5816
    @lungelomkhize5816 Год назад

    Been struggling to make calculator the whole day and decided to search it and this guy did it in under 15 minutes LOL I need some sleep!!

  • @de-stressmusic432
    @de-stressmusic432 2 года назад +22

    This is a great tutorial, but for beginner programmers I would not recommend using eval() especially in real-world projects. To quote from MDN page "Warning: Executing JavaScript from a string is an enormous security risk. It is far too easy for a bad actor to run arbitrary code when you use eval(). See Never use eval()!, below."

    • @maeyham4336
      @maeyham4336 Год назад +2

      they literally said this in the video lil bro

    • @DeviKumavath
      @DeviKumavath Год назад

      What is eval() means??

    • @lucinda2998
      @lucinda2998 Год назад +2

      @@DeviKumavath The eval() function evaluates the specified expression, if the expression is a legal Python statement, it will be executed.

  • @loydcose2780
    @loydcose2780 2 года назад

    That was so simple! The other guy uses class and lot of functions and it takes more than 30mns. But yours is so simple! +1 sub THANKS!

  • @cieraadair
    @cieraadair 2 года назад +5

    This was amazing and so easy to follow. Thank you so much!!!

  • @MrRahat6271
    @MrRahat6271 Год назад

    Thanks man. was searching something like this. simple but effective

  • @Amber-wt1cu
    @Amber-wt1cu Год назад

    Thank you! I'm learning JavaScript. This was a little/lot above my knowledge but it was finally nice to implement some JavaScript vs. endless amounts of freeCodeCamp.

  • @rohitbarate1531
    @rohitbarate1531 2 года назад +1

    I'm new to this channel. He explained me a new idea to make calculator in 14 minutes

  • @shreyajha2501
    @shreyajha2501 3 года назад

    keep making this stuff, it helped a lot :)

  • @schizo8393
    @schizo8393 2 года назад +1

    Great tutorial mate loved it

    • @JsAcademyOfficial
      @JsAcademyOfficial  2 года назад +1

      I’m glad you loved it!
      Thanks for the kind words :)

  • @joshuasimmons696
    @joshuasimmons696 Год назад

    Outstanding! My first working app, Thanks!

  • @bryanhernandz
    @bryanhernandz 3 года назад +1

    I really liked your way to explain and your code is so clear. SUBSCRIBED

    • @JsAcademyOfficial
      @JsAcademyOfficial  3 года назад +1

      Thanks for the kind words expect more to come 😉

  • @markusmottus5345
    @markusmottus5345 Год назад +1

    Thanks for the video! What VS theme do you use?:)

  • @marcusmorrow3900
    @marcusmorrow3900 2 года назад

    trying to learn how to use javascript with html and this video is gold. thanks

    • @JsAcademyOfficial
      @JsAcademyOfficial  2 года назад

      Thank you Marcus! I’m so glad that you found it useful

  • @Robytsu
    @Robytsu 2 года назад +4

    Really well made tutorial video! Thanks a lot!
    Now I would like to see how you do it without using eval()!

  • @__jake.m
    @__jake.m 2 года назад

    Thank you for the tutorial! 😄

  • @djibrilmugisho5874
    @djibrilmugisho5874 Год назад

    thanks for this video in javascript build a calculator seem to be difficult but with this video every thing is clear thanks so much

  • @askaririzvi9391
    @askaririzvi9391 Год назад

    you sir, are very underrated! You are very good teacher and explained everything you did and why you did. Thankyou!
    \

  • @fawazudeenogunleye2215
    @fawazudeenogunleye2215 Год назад

    Thank you so much. I’ll like to add something.
    Instead of using eval(), use Function.
    In that line where case Is “=“, you can set
    display.innerText = Function(“return “ + display.innerText)();
    Don’t forget to add your break. Thanks!

  • @deterdmn5568
    @deterdmn5568 2 года назад +1

    thanks!
    english isnt my first language and this tutorial was awesome!

  • @inrrehman4976
    @inrrehman4976 Год назад

    Your method is amazing Sir... thank you

  • @satyajitroy4685
    @satyajitroy4685 2 года назад +1

    Really simple and great explanation.

  • @ifeoluwaolorunnegan253
    @ifeoluwaolorunnegan253 2 года назад +1

    hello, thank you so much. This tutorial was so simple . I have a question, if i want the content on the display to automatically clear when i select a new number after using the equal to sign, how will this work.

  • @adnansmove8597
    @adnansmove8597 Год назад

    just finished this tutorial now i am just your fan... Almost Subscribe

  • @spade6774
    @spade6774 2 года назад

    Very good thank you and the last security demo is very valuable

  • @Zaraki1989
    @Zaraki1989 2 года назад

    so easy and clear. Thank you very much.

  • @arpandashore4600
    @arpandashore4600 Год назад

    Thanks man making video informative and simple

  • @user-fy8kb7nd5f
    @user-fy8kb7nd5f 2 года назад

    This was the simplest way to make a calculator 😃😃😃 i love it

  • @dieliebeduldetalles
    @dieliebeduldetalles Год назад

    wow! this is good stuff, thank you

  • @gokujr4133
    @gokujr4133 3 года назад +2

    Bro your video is really awesome very easy to understand. Thankyou😊

    • @JsAcademyOfficial
      @JsAcademyOfficial  3 года назад +1

      Thanks for the feedback! I’m glad you enjoyed and understood it 😌

  • @adrmad8849
    @adrmad8849 2 года назад

    Your code is amazing!😮

  • @emmanuelaledu955
    @emmanuelaledu955 2 года назад

    Thanks so much for this wonderful tutorials

  • @durelljardim5703
    @durelljardim5703 3 года назад

    Thanks for the help!

  • @cigarettesafter9435
    @cigarettesafter9435 3 года назад

    Thank you so much, u're the best.

  • @mohdaghari2406
    @mohdaghari2406 2 года назад +1

    THANK YOU VERY MUCH SIR...REALLY HATS OFF TO SHOW RESPECT

  • @toenytv7946
    @toenytv7946 2 года назад

    Great video. Thanks for sharing

  • @nusarajaneesha1982
    @nusarajaneesha1982 2 года назад

    This was great! I'm new to javascript and this helped me alot.
    I've been trying to add keydown function to this calculator.
    How can i do that?

    • @spotify1ful
      @spotify1ful 2 года назад

      Did you manage to get keydown in on this one? Currently trying myself

  • @SanamSings
    @SanamSings Год назад

    Such a great video. Thank you so much. Subscribing for more .

  • @omkaryadav7445
    @omkaryadav7445 2 года назад

    You gained one subscriber.Thank You 🙏

  • @totallynotcozmo510
    @totallynotcozmo510 2 года назад

    You Helped me get flying colors on my exam today! Thank you so much for your help!
    But i have a question, I have been trying to find the perfect code editor for a beginner like me, may I know that name of the software you used for this video?

    • @StonyArc
      @StonyArc 2 года назад

      Looks like they're using vscode as their editor

    • @zMoonlight
      @zMoonlight 2 года назад

      its visual studio code

  • @falortral
    @falortral Год назад

    Hey man, thanks for the tutorial, easy and understandable... just one thing i want to ask... aren't you hungarian??? :D

  • @rfryanfavour4369
    @rfryanfavour4369 Год назад

    Lol you just made me laugh and smile and wonder and scream at once 😆 thank you so much sir... this is perfect for an assignment at last

  • @carlosaltirado
    @carlosaltirado Год назад

    Thanks for the video. How can I disable the alphabet keyboard but keeping just the numbers using the switch statement? also how can I limit the number of digits to show on the display?

  • @sharina9584
    @sharina9584 2 года назад

    hey! thank you for this tutorial! I just have one question, if for example, you have written a lot of numbers how do you make the numbers written on the next line instead of just one line? thanks

    • @JsAcademyOfficial
      @JsAcademyOfficial  2 года назад +2

      Hi!
      To achive that I’d set a max with to the display and ser its height to auto. This way if the content overflows it would go to the next line. And also in this case the container of the calculator shouldn’t have a fixed height

    • @sharina9584
      @sharina9584 2 года назад

      @@JsAcademyOfficial thank you bro! I'm your subscriber ;)

    • @sharina9584
      @sharina9584 2 года назад

      Hej! I hope you don't mind me asking questions. I'm just wondering if it's possible to change the color of the answer. For example if the answer is 0 it will be red and if it's negative it'll be blue. Is it possible like that? Do you have a tutorial video for that? Sorry I'm quite new in this.

    • @JsAcademyOfficial
      @JsAcademyOfficial  2 года назад +1

      Hi!
      No problem. Yes it is possible, you should check the value of #display when it changes and basoed on the value you should set classes or the styles directly. You can use classes like .zero .negative .positive just be aware the the id selector is stromger in css so you should remove any color changes is the id selector

    • @sharina9584
      @sharina9584 2 года назад

      @@JsAcademyOfficial thanks a bunch bro! you're awesome!

  • @ajgroupinc.1775
    @ajgroupinc.1775 Год назад

    great jobs!🏆

  • @aboctv4182
    @aboctv4182 Год назад

    I hope you create more videos about programming language.

  • @cloudman007
    @cloudman007 Год назад

    Very easy and understandable,
    may I ask if the buttons are not responding and not displaying what I do on the output?

    • @JsAcademyOfficial
      @JsAcademyOfficial  Год назад

      If the buttons do not work there’s a high chance that the event listeners/handlers are not set properly. Check for typos in classnames and ids and double check the event handlers

    • @cloudman007
      @cloudman007 Год назад

      @@JsAcademyOfficial Update: I found the problem all along it was the wrong browser i was using for the project.
      Again thank you for the help sir 💚

  • @mohammadmohayeji
    @mohammadmohayeji Год назад

    Nicely Done bro 👏👍

  • @akshaykhatri2027
    @akshaykhatri2027 2 года назад

    That was amazingggg stuff!! I really appreciate your work sir, easy and not complicated at all.
    But can you tell me if i had used '*' sign as a HTML Entity, then how to use '*' multiply operation in JS??

    • @JsAcademyOfficial
      @JsAcademyOfficial  2 года назад +1

      Hi Akshay!
      Thanks for the kind words. I hope I understand your question. The eval function takes a string and runs it as it would be javascript so the * sign will be translated into the multiplication operator when using it within eval

  • @Rovijun21
    @Rovijun21 3 года назад

    Good tuto, thank you

  • @dzhanerhasan6546
    @dzhanerhasan6546 Год назад

    Holy sh*t! This was genius.

  • @zlord306
    @zlord306 Год назад

    It was really good love from India .💐💐💐💐💐💐

  • @Pharizer
    @Pharizer 3 года назад +1

    Nice video! I'm wondering what kind of accent is this you have :D Jól sejtem, hogy magyar? :D

    • @JsAcademyOfficial
      @JsAcademyOfficial  3 года назад +1

      Thanks 😉 Igen magyar az akcentus :)

    • @Pharizer
      @Pharizer 3 года назад +1

      @@JsAcademyOfficial Akkor jól éreztem :D Jó kis videó, csak így tovább! Nem rég kezdtem kódolni és pont ezzel a feladattal küszködöm jelenleg. Amúgy meg ment a sub!

    • @JsAcademyOfficial
      @JsAcademyOfficial  3 года назад

      Sok sikert és kitartást hozzà! Köszi a kedves szavakat 😌

  • @SAIFULISLAM-xd3nw
    @SAIFULISLAM-xd3nw 2 года назад

    So awesome project

  • @Xusanibragimov1222
    @Xusanibragimov1222 2 года назад

    thanks for this video tutorial this easily explained thank you so much again !!!!!!!!!!!!!!!!

  • @ifaduolasamuel7144
    @ifaduolasamuel7144 3 года назад +1

    Subscribed already

  • @xlylopg787
    @xlylopg787 2 года назад +1

    I have a question, When I changed the divide to "÷" Error kept coming so I was wondering if you could tell me how to make it so that it also works with "÷"?

    • @megyeridaniel5451
      @megyeridaniel5451 2 года назад

      the valid Math operator to divide is the "/" symbol and it's not possible to override or "operator overload" it

  • @august8231
    @august8231 Год назад

    could we have used forEach instead of map to add event listeners to each button

  • @pinkbalem
    @pinkbalem 2 года назад

    I dont understand why u add the 'e' after declaring the click event listener at 7:01.. what does it do? and why shouldnt i just leave a blank ( ) ?
    im just starting so i googled a lot about all the things you did on the vid but i cant find an answer to that, i dont know how to word my question to google.. but i hope u can answer it!

  • @nikolaikorobeinik119
    @nikolaikorobeinik119 2 года назад

    Thanks! This is a really good tutorial!

  • @jamesyancharas
    @jamesyancharas 2 года назад

    really nice prof video.

  • @sanathkumarshenoy9955
    @sanathkumarshenoy9955 Год назад

    Amazing man

  • @freelancerzakaria2059
    @freelancerzakaria2059 2 года назад +1

    What is the alternative function to the eval();

    • @maeyham4336
      @maeyham4336 Год назад

      you gotta make one yourself.

  • @sumanabhat3677
    @sumanabhat3677 2 года назад

    Thankyou soo much!!!!

  • @dennistonye3718
    @dennistonye3718 Год назад

    why did you use div instead of input for the calculator display

  • @singhgagandeep955
    @singhgagandeep955 2 года назад

    great work

  • @abeeblahabdullah8092
    @abeeblahabdullah8092 Год назад

    WAOOOOH WAOOH WAAOOOH
    Thank you so much !!

  • @maniac1441
    @maniac1441 2 года назад +1

    Which theme are you using

  • @walkahh
    @walkahh Год назад

    am i missing a package or something? i was even at the point of copy and pasting everything exactly and it still didn't work. every single html js and css. did something break or something?

  • @mateomerja6462
    @mateomerja6462 Год назад

    This may sound a bit dumb but im new so how do i duplicate the lines of the code in vs studio? sub btw

  • @uccanh2750
    @uccanh2750 3 года назад

    good video., thanks u so much

  • @blangkowala2395
    @blangkowala2395 Год назад

    but how to fix if you tap equal sign that don't have items it give me undefined

  • @omkaryadav7445
    @omkaryadav7445 2 года назад +1

    Application with real user instead of eval what should we use?

    • @JsAcademyOfficial
      @JsAcademyOfficial  2 года назад

      I'd install this package mathjs.org/ and use math.evaluate()

  • @linhmytran696
    @linhmytran696 2 года назад +1

    Hi, thank you so much for your helpful video. However, I did not understand the part in javascript ,
    First button.map(button =>{ I really dont understand why you express this and why we use map here and why we use the equal sign and larger sign in this situation
    Second, I dont understand what e.target.innerText mean in here

    • @JsAcademyOfficial
      @JsAcademyOfficial  2 года назад +2

      Hi Linh!
      The equal sign and the > symbol is a shorthand for functions. We use map to loop through the array. The target means the dom element (container) that was clicked and innerText means its content. Feel free to check out arrow functions arrays and dom on w3schools.com
      Have a nice day! 😊

  • @fadiahetrakeshkumar9454
    @fadiahetrakeshkumar9454 3 года назад +1

    Very nice video

  • @letssavetheworldwithasmile
    @letssavetheworldwithasmile 5 месяцев назад +1

    I truly appreciate it. I wish I could know all the parameters you use. I think is a matter of time. Thank you!👋👋👋👋

  • @user-df4vp1gd9w
    @user-df4vp1gd9w 2 года назад

    i wanna use "×" and "÷" which is times and divide in HTML. but if I use them, your js code cannot calculate / and * (ㅠ.ㅠ) I need help

  • @B8Official
    @B8Official 2 года назад

    Good job

  • @BenimaruRBB
    @BenimaruRBB 2 года назад

    yo this is sick

  • @p_iconic_
    @p_iconic_ 3 года назад +1

    Subscribed

  • @XaZtheDismember666
    @XaZtheDismember666 2 года назад

    hey how you multiply that line like in 1:05? awesome chanel !

  • @mo3azeldesoky713
    @mo3azeldesoky713 Год назад

    thanks man🙏🙏❤❤

  • @djordjerankovic4503
    @djordjerankovic4503 2 года назад

    When I click any button it shows that number or symbol 18 times (number of buttons in calculator). Why does it happen? Edit: Found the problem, after .map() method, when i was adding event listener, i coded document.addEventListener instead of button.addEventListener

    • @JsAcademyOfficial
      @JsAcademyOfficial  2 года назад

      Thanks for sharing the solution, yes this way you attached an event listener to all the buttons instead of adding 1 for each button

  • @genddabowen9171
    @genddabowen9171 Год назад

    What is "button => {}" in the buttons.map?

    • @JsAcademyOfficial
      @JsAcademyOfficial  Год назад

      That is called an arrow function. You can find more info here: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

  • @onuprinceleytoochukwujohn1487
    @onuprinceleytoochukwujohn1487 2 года назад

    The upper part of the calculator css is not available...I can't just see it

  • @muxtarHesenov
    @muxtarHesenov 2 года назад

    Hi, did you use bootstrap here?

    • @JsAcademyOfficial
      @JsAcademyOfficial  2 года назад

      Hello Muxtar!
      Nope I didn’t use bootstrap

    • @muxtarHesenov
      @muxtarHesenov 2 года назад

      @@JsAcademyOfficial Okay, thanks for everything!