A strategy that has served me well to not spend foolishly is to measure my expenses in time, not in money. Something like in the movie In Time (highly recommended 👌).
Suppose you earn $16,000.00 MXN per month (About $800.00 USD), and you work 160 hours a month (8 hours from Monday to Friday), actually your salary is $100.00 MXN per hour ($16,000/160 hours = $100.00 per hour).
Now suppose you buy junk food at 7 Eleven and pay $200.00, that is costing you 2 hours. The question is, are the chips you are eating worth 2 hours of your time? It might be if you eat them watching movies with your friends or it might not be if it is just because you craved them when passing by the store. Here it depends on each person.
I’m not saying this strategy is the best and I don’t think it works for everyone either, but it has helped me see money from another perspective.