JavaScript Interview Questions and Answers
Freshers / Beginner level questions & answers
Ques 1. What are JavaScript data types?
- Number
- String
- Boolean
- Function
- Object
- Null
- Undefined.
Ques 2. How do you convert numbers between different bases in JavaScript?
Use the parseInt() function, that takes a string as the first parameter, and the base as a second parameter. So to convert hexadecimal 3F to decimal, use parseInt ("3F", 16);
Ques 3. What does isNaN function do?
Return true if the argument is not a number.
Ques 4. What looping structures are there in JavaScript?
- for
- while
- do-while
- foreach
Ques 5. What boolean operators does JavaScript support?
- &&
- ||
- !
Ques 6. How do you create a new object in JavaScript?
- var obj = new Object();
- var obj = {};
Ques 7. How about 2+5+"8"?
Since 2 and 5 are integers, this is number arithmetic, since 8 is a string, it's concatenation, so 78 is the result.
Ques 8. What does "1"+2+4 evaluate to?
Since 1 is a string, everything is a string, so the result is 124.
Ques 9. What's a way to append a value to an array?
arr[arr.length] = value;
Ques 10. What is negative infinity?
It's a number in JavaScript, derived by dividing negative number by zero.
Ques 11. What is this keyword?
It refers to the current object.
Ques 12. What is Javascript?
A scripting language is a simple, interpreted programming language.
Scripts are embedded as plain text, interpreted by application.
Simpler execution model: don't need compiler or development environment.
Saves bandwidth: source code is downloaded, not compiled executable.
Platform-independence: code interpreted by any script-enabled browser.
But: slower than compiled code, not as powerful/full-featured.
Ques 13. What is identifier in Javascript?
Identifier– The name of a variable (or function)
Starts with a letter, can contains digits & underscores
Case Sensitive!!
Should be meaningful to someone reading your code
Good: accountBalance, amountDue
Bad: bal, due,
Just plain wrong: 2bOrNotToBe, +var, total-value
Ques 14. What type of variables are in Javascript?
Must declare variables before they’re used in the program
Declare at the top of the program & terminate each statement with ‘;’
Intialize variables when appropriate
Local variables (declared within a function) destroyed after function exit.
Can only be accessed within the function
Example – Note Assignments
var candyBarPrice = 2.50;
var taxRate = .075;
var candyBarsPurchased;
Ques 15. What is Assignment Operator in Javascript?
Assignment ‘looks like’ equal sign but does NOT behave like it
subTotal = subTotal + 1.50
subTotal ‘is assigned the value’ that is currently in subTotal plus the value of 1.50
Ques 16. What is Expression in Javascript?
An expression is a statement that describes a computation.
Usually look like algebra formulas
total = subTotal * taxRate
Operators (+, -, *, /, etc.) have different levels of precedence, similar to algebra
Don’t rely on it! For clarity, use parentheses.
Ques 17. Explain String in Javascript?
Strings are sequences of keyboard characters enclosed in quotes
“Hello World” or ‘Hello World’
Variables can hold strings
var greeting = “Hello World”
String can be empty, i.e., contain no characters
var myAnswer = “”
Use ‘\’ (escape symbol) to ‘type’ prohibited characters
\b for backspace, \n for newline, \t for tab, \” for double quote.
Ques 18. Few events in Javascript.
onsubmit - call when submit button is clicked
onclick - call when this button is clicked
onreset - call when the reset button is clicked
onload - call after page loads
onmouseover - call when mouse pointer enters image area
onmouseout - call when mouse pointer leaves image area
onfocus - call when control receives focus
onblur - call when a control loses focus
onchange - call when a control loses focus and the value of its contents has changed
onunload – call when a page is closed
Ques 19. Tell us about local variables.
If needed, you can declare local variables within a function.
local variable is visible only within the function body after it’s declared.
Commonly used to store results of an intermediate calculation.
function findMaxValue(num1, num2,num3) {
var tempMax; //local var
if (num1 >= num2) {
tempMax = num1;
}
else {
tempMax = num2;
}
if(num3 >= tempMax) {
tempMax = num3;
}
return tempMax;
} //end function
Ques 20. Explain Global Variables in Javascript.
Global variables are those declared outside of functions
Global variables are ‘visible’ from anywhere in the program, including inside functions
var globalHello = “Hello!”;
function writeHello() {
document.write(globalHello);
}
// outputs “Hello!”
Ques 21. What are primitives in Javascript?
Boolean, string and number.
Ques 22. How do you submit a form using Javascript?
Use document.forms[0].submit();
(0 refers to the index of the form – if you have more than one form in a page, then the first one has the index 0, second has index 1 and so on).
Ques 23. What does isNaN function do?
Return true if the argument is not a number.
Ques 24. Methods GET and POST in HTML forms - what's the difference?
GET: Parameters are passed in the querystring. Maximum amount of data that can be sent via the GET method is limited to about 2kb.
POST: Parameters are passed in the request body. There is no limit to the amount of data that can be transferred using POST. However, there are limits on the maximum amount of data that can be transferred in one name/value pair.
Ques 25. How to get the contents of an input box using Javascript?
Use the "value" property.
var myValue = window.document.getElementById("MyTextBox").value;
Ques 26. How to determine the state of a checkbox using Javascript?
var checkedP = window.document.getElementById("myCheckBox").checked;
Ques 27. How to set the focus in an element using Javascript?
<script> function setFocus() { if(focusElement != null) { document.forms[0].elements["myelementname"].focus(); } } </script>
Ques 28. What is the difference between an alert box and a confirmation box?
An alert box displays only one button which is the OK button whereas the Confirm box displays two buttons namely OK and cancel.
Ques 29. Can javascript code be broken in different lines?
Breaking is possible within a string statement by using a backslash \ at the end but not within any other javascript statement.
that is ,
document.write("Hello \ world");
is possible but not document.write \
("hello world");
Ques 30. To put a "close window" link on a page?
<a href='javascript:window.close()' class='mainnav'> Close </a>
Ques 31. How to comment javascript code?
Use // for line comments and
/*
*/ for block comments
Ques 32. Name the numeric constants representing max,min values?
Number.MAX_VALUE
Number.MIN_VALUE
Ques 33. What does javascript null mean?
The null value is a unique value representing no value or no object.
It implies no object,or null string,no valid boolean value,no number and no array object.
Ques 34. How to disable an HTML object?
document.getElementById("myObject").disabled = true;
Intermediate / 1 to 5 years experienced level questions & answers
Ques 35. How do you assign object properties?
- obj["age"] = 18
- obj.age = 18
Ques 36. What is Date class in Javascript? Please explain.
to create a Date object, use new & supply year/month/day/… as desired
today = new Date(); // sets to current date & time
newYear = new Date(2002,0,1); //sets to Jan 1, 2002 12:00AM
methods include:
newYear.getYear() can access individual components of a date
newYear.getMonth()
newYear.getDay()
newYear.getHours()
newYear.getMinutes()
newYear.getSeconds()
newYear.getMilliseconds()
Ques 37. What are Math routines in Javascript?
the Math object contains functions and constants
Math.sqrt
Math.pow
Math.abs
Math.max
Math.min
Math.floor
Math.ceil
Math.round
Math.PI
Math.E
Math.random function returns number in [0..1)
Ques 38. What about Navigator object?
navigator.appName property that gives the browser name.
navigator.appVersion property that gives the browser version.
navigator.userAgent property that gives the browser related information.
Ques 39. Explain String functions in Javascript.
a class defines a new type (formally, Abstract Data Type)
encapsulates data (properties) and operations on that data (methods)
a String encapsulates a sequence of characters, enclosed in quotes
properties include
length : stores the number of characters in the string
methods include
charAt(index) : returns the character stored at the given index
(as in C++/Java, indices start at 0)
substring(start, end) : returns the part of the string between the start
(inclusive) and end (exclusive) indices
toUpperCase() : returns copy of string with letters uppercase
toLowerCase() : returns copy of string with letters lowercase
to create a string, assign using new or just make a direct assignment (new is implicit)
word = new String("foo"); word = "foo";
properties/methods are called exactly as in C++/Java
word.length word.charAt(0)
Ques 40. How do we get JavaScript onto a web page?
You can use several different methods of placing Javascript in you pages.
You can directly add a script element inside the body of page.
1. For example, to add the "last updated line" to your pages, In your page text, add the following:
<p>blah, blah, blah, blah, blah.</p>
<script type="text/javascript" >
<!-- Hiding from old browsers
document.write("Last Updated:" +
document.lastModified);
document.close();
// -->
</script>
<p>yada, yada, yada.</p>
(Note: the first comment, "<--" hides the content of the script from browsers that don't understand javascript. The "// -->" finishes the comment. The "//" tells javascript that this is a comment so javascript doesn't try to interpret the "-->". If your audience has much older browsers, you should put this comments inside your javascript. If most of your audience has newer browsers, the comments can be omitted. For brevity, in most examples here the comments are not shown. )
The above code will look like this on Javascript enabled browsers,
2. Javascript can be placed inside the
Functions and global variables typically reside inside the <head> element.
<head>
<title>Default Test Page</title>
<script language="JavaScript" type="text/javascript">
var myVar = "";
function timer(){setTimeout('restart()',10);}
document.onload=timer();
</script>
</head>
Javascript can be referenced from a separate file
Javascript may also a placed in a separate file on the server and referenced from an HTML page. (Don't use the shorthand ending <script ... />). These are typically placed in the <head> element.
<script type="text/javascript" SRC="myStuff.js"></script>
Ques 41. How can JavaScript make a Web site easier to use? That is, are there certain JavaScript techniques that make it easier for people to use a Web site?
JavaScript's greatest potential gift to a Web site is that scripts can make the page more immediately interactive, that is, interactive without having to submit every little thing to the server for a server program to re-render the page and send it back to the client. For example, consider a top-level navigation panel that has, say, six primary image map links into subsections of the Web site. With only a little bit of scripting, each map area can be instructed to pop up a more detailed list of links to the contents within a subsection whenever the user rolls the cursor atop a map area. With the help of that popup list of links, the user with a scriptable browser can bypass one intermediate menu page. The user without a scriptable browser (or who has disabled JavaScript) will have to drill down through a more traditional and time-consuming path to the desired content.
Ques 42. How to create arrays in JavaScript?
We can declare an array like this
var scripts = new Array();
We can add elements to this array like this
scripts[0] = "PHP";
scripts[1] = "ASP";
scripts[2] = "JavaScript";
scripts[3] = "HTML";
Now our array scrips has 4 elements inside it and we can print or access them by using their index number. Note that index number starts from 0. To get the third element of the array we have to use the index number 2 . Here is the way to get the third element of an array.
document.write(scripts[2]);
We also can create an array like this
var no_array = new Array(21, 22, 23, 24, 25);
Ques 43. How to set a HTML document's background color?
document.bgcolor property can be set to any appropriate color.
Ques 44. How to write a script for "Select" lists using javascript?
1. To remove an item from a list set it to null
mySelectObject.options[3] = null;
2. To truncate a list set its length to the maximum size you desire
mySelectObject.length = 2;
3. To delete all options in a select object set the length to 0.
mySelectObject.length
Ques 45. Is a Javascript script faster than an ASP script?
Yes.Since Javascript is a client-side script it does require the web server's help for its
computation,so it is always faster than any server-side script like ASP,PHP,etc..
Ques 46. What is a prompt box?
A prompt box allows the user to enter input by providing a text box.
Experienced / Expert level questions & answers
Ques 47. What's relationship between JavaScript and ECMAScript?
ECMAScript is yet another name for JavaScript (other names include LiveScript). The current JavaScript that you see supported in browsers is ECMAScript revision 3.
Ques 48. Write a javascript to get difference between two dates.
now = new Date();
newYear = new Date(2004,0,1);
secs = Math.round((now-newYear)/1000);
days = Math.floor(secs / 86400);
secs = days*86400;
hours = Math.floor(secs / 3600);
secs = hours*3600;
minutes = Math.floor(secs / 60);
secs = minutes*60
document.write(days + " days, " +
hours + " hours, " +
minutes + " minutes, and " +
secs + " seconds.");
Ques 49. What is User-Defined class in Javascript?
can define new classes, but the notation is awkward
simply define a function that serves as a constructor
specify data fields & methods using this
no data hiding: can't protect data or methods
function Die(sides)
{
this.numSides = sides;
this.numRolls = 0;
this.Roll = Roll;
}
function Roll()
{
this.numRolls++;
return Math.floor(Math.random()*this.numSides) + 1;
}
die6 = new Die(6);
die8 = new Die(8);
roll6 = -1; // dummy value to start loop
roll8 = -2; // dummy value to start loop
while (roll6 != roll8) {
roll6 = die6.Roll();
roll8 = die8.Roll();
document.write("6-sided: " + roll6 +
" " +
"8-sided: " + roll8 + "
");
}
Ques 50. Where are cookies actually stored on the hard disk?
This depends on the user's browser and OS.
In the case of Netscape with Windows OS,all the cookies are stored in a single file called
cookies.txt
c:\Program Files\Netscape\Users\username\cookies.txt
In the case of IE,each cookie is stored in a separate file namely username@website.txt.
c:\Windows\Cookies\username@Website.txt
Ques 51. Are you concerned that older browsers don't support JavaScript and thus exclude a set of Web users or individual users?
Fragmentation of the installed base of browsers will only get worse. By definition, it can never improve unless absolutely everyone on the planet threw away their old browsers and upgraded to the latest gee-whiz versions. But even then, there are plenty of discrepancies between the scriptability of the latest Netscape Navigator and Microsoft Internet Explorer.
The situation makes scripting a challenge, especially for newcomers who may not be aware of the limitations of earlier browsers. A lot of effort in my books and ancillary material goes toward helping scripters know what features work in which browsers and how to either workaround limitations in earlier browsers or raise the compatibility common denominator.
Designing scripts for a Web site requires making some hard decisions about if, when, and how to implement the advantages scripting offers a page to your audience. For public Web sites, I recommend using scripting in an additive way: let sufficient content stand on its own, but let scriptable browser users receive an enhanced experience, preferably with the same HTML document.
Ques 52. What does the "Access is Denied" IE error mean?
The "Access Denied" error in any browser is due to the following reason.
A javascript in one window or frame is tries to access another window or frame whose document's domain is different from the document containing the script.
Ques 53. How to hide javascript code from old browsers that dont run it?
Use the below specified style of comments -->