"alert" is not defined when running www.jshint.com

Javascript

Javascript Problem Overview


I fixed this by simply adding var alert; However, is this what I should be doing to get the pesky error message to go away? Here is the fix. Here is the fail on www.jshint.com.

I'm trying to learn from the error it throws..not necessarily make them go away.

(function () {
  
"use strict";

var alert;  //  added this in to fix

function initialize_page()
  {
  alert ("hi");
  }
 
addEventListener('load', initialize_page);
   
})();

Javascript Solutions


Solution 1 - Javascript

Instead of

alert('message')

you should use

window.alert('message');

Because this method is defined in window object.

This of course assumes you have browser option set to true in your .jshintrc, so this way jshint will know window object is exposed.

"browser"       : true,     // Standard browser globals e.g. window, document.

*The same thing happens with confirm().

Solution 2 - Javascript

This documentation says the following about the browser option:

This option defines globals exposed by modern browsers: all the way from good ol' document and navigator to the HTML5 FileReader and other new developments in the browser world. Note: this option doesn't expose variables like alert or console. See option devel for more information.

and the following about the devel option:

This option defines globals that are usually used for logging poor-man's debugging: console, alert, etc. It is usually a good idea to not to ship them in production because, for example, console.log breaks in legacy versions of Internet Explorer.

You have browser enabled and devel disabled. You can control these with checkboxes under "Assume" on the jshint original page. I also recommend heeding the warning in the documentation ;-)

Solution 3 - Javascript

Set "devel:true" in the Options. This enables things like Alert, console, etc.

See documentation here: http://jshint.com/docs/options/

Solution 4 - Javascript

Use .jshintrc file or CTRL + , in VS Code, to edit options for jshint.

in js alert(data.status); or window.alert(data.status);

"window": true,
"alert": true

or best

"devel": true,

{
"esversion": 6,
"browser": true,
"undef": true,
"varstmt": true,
"forin": true,
"unused": true,
"funcscope": true,
"lastsemic": true,
"moz": true,
"jquery": true,
"module": true,
"devel": true,
"globals": {
    "window": true,
    "document": true,
    "console": true,
    "alert": true
}

}

Solution 5 - Javascript

function prod(arr) {
    let largest = 0;
    let secondLargest = 0;
    const len = arr.length;
    for (let i = 0; i < len; i++) {
        if (arr[i] > largest) {
            secondLargest = largest;
            largest = arr[i];
        }
        else if (arr[i] < largest && arr[i] > second_largest) {
            secondLargest = arr[i]
        }
    }
    return largest * secondLargest;
}

console.log(prod([2, 4, 7, 8]));

Solution 6 - Javascript

Instead of:

alert('message')

I use:

var alert = window['alert'];

Solution 7 - Javascript

try passing window object in :

(function (global) {

"use strict";

var alert;  //  added this in to fix

function initialize_page()
  {
  global.alert ("hi");
  }

addEventListener('load', initialize_page);

})(window);

Solution 8 - Javascript

declare alert as variable and it will work without any settings:

for example:

var alert;

alert('hello world');

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser656925View Question on Stackoverflow
Solution 1 - JavascriptBoris BrdarićView Answer on Stackoverflow
Solution 2 - JavascriptAdam ZalcmanView Answer on Stackoverflow
Solution 3 - JavascriptJoshuaView Answer on Stackoverflow
Solution 4 - JavascriptAliaksandr ShpakView Answer on Stackoverflow
Solution 5 - JavascriptBhargavi GopalacharView Answer on Stackoverflow
Solution 6 - JavascriptDrew HawkenView Answer on Stackoverflow
Solution 7 - JavascriptDrStrangeLoveView Answer on Stackoverflow
Solution 8 - JavascriptdesignbykhalidView Answer on Stackoverflow