4

Here im having a bit of an issue with this very simple script Ive written up. The aim for this script is to simply reduce the given number by one each time the button is clicked. I cannot appear to do this.. My global variable being the Number=100 doesnt appear to change, or change more than once.. Apologies for not being able to explain this well. Here is the part im working on..:

<script>
  var Number = 100;        // Number i want changed and to keep changing each button click
  function outcome() {     // Button calls this function
    Number = Number - 1;   // Tries to change Global Number.. :/
  }
  document.write(Number);  // Has the Number written in the document
</script> 
3
  • You didn't call your function Commented Mar 24, 2013 at 21:25
  • Both the answers below are correct. Call the function and stop using protected keywords as variable names, and it will work. Commented Mar 24, 2013 at 21:27
  • I just formatted your code and added semicolons where needed. Commented Mar 24, 2013 at 21:28

2 Answers 2

7

Yes, conceptually this is right. Only you are not calling the function, at least not before writing Number to the document.

Btw, Number is the global reference to the Number constructor so you should use another variable name, lowercase at best.

var num = 100;
function outcome() {
    num--;
}
outcome();
document.write(num); // 99

or

<script>
var num = 100;
function outcome() {
    num--;
    alert(num);
}
</script>
<button onclick="outcome()">Decrease!</button>

(Demo at jsfiddle.net)

Sign up to request clarification or add additional context in comments.

6 Comments

The global Number is writeable.
@thesystem: Is it? Oh, it really is. Fixed now.
One would think it wouldn't be, but then one would forget that we're talking about JavaScript. ;-)
@DarrylChapman: Then you shouldn't be using document.write(). That's meant to be used as the page is loading... not after it's already loaded.
I am calling my function from the use of a button. I have tweaked the code a bit with using num as the variable and such, but it is changing the variable once, its alerting me 99, and if i click the button again, its coming up with 99 again.
|
2

You have to call your function:

<script>
var Number=100    
function outcome(){ 
Number=Number-1 
}
outcome(); // call the function here
document.write(Number)  
</script> 

or don't use a function in the first place:

<script>
var Number=100    
Number=Number-1   
document.write(Number) 
</script> 

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.