JavaScript Introduction
Aaron Conran
Text: JavaScript The Definitive GuideBy David Flannagan
Case Sensitive
Example:
• myVar
• myVAr
• These are not the same variable.
(Optional) Semicolons
• JavaScript allows you to omit semicolons at the end of your statements.
• However this can create nasty bugs and cause difficult to debug problems.
• Use them at the end of statements and make your life easier.
Comments
• JavaScript supports both C and C++ style comments
• // this is a comment
• /* this is another comment */
Comments (JSDoc)
• Comments which begin with /**• Note the 2 stars will be picked up by JSDoc• JSDoc allows you to document your JavaScript
classes in a formal manner similar to JavaDoc.• Allows code and documentation to always be
synchronized.• For more information:
http://jsdoc.sourceforge.net/
JavaScript Reserved Words
• Avoid the use of reserved words as variables and function names in your JavaScript.
• For a full list
Flanagan p19-20
• Examples:– break– if– switch– in– class
JavaScript DataTypes
• Numbers• Strings• Booleans• Functions• Objects
• Arrays• null• undefined• Date• Error
Numbers
• Integer (whole)• Hexadecimal & Octal• Floating-points
(decimal)
You can add, multiply divide and subtract numbers with their respective operator: +, *, /, & -
• The Math library of JavaScript also exposes a number of useful methods:– Math.abs(num)– Math.sin(num)– Math.ceil(num)
Full reference p 659-669
Special Numeric Values (Table 3-1) p25
Constant Meaning
Infinity Special value to represent infinity
NaN Special not-a-number value
Number.MAX_VALUE Largest representable number
Number.MIN_VALUE Smallest (closest to zero) representable number
Number.NaN Special not a number value
Number.POSTIVE_INFINITY Special value to represent infinity
Number.NEGATIVE_INFINITY Special value to represent negative infinity
Strings
• “zero or more Unicode characters enclosed within single or double quotes”
• Examples:– “”– ‘myForm’– “testing”– “This is a longer string”
Escape Sequences
• To encode special values like new lines and ‘s in JavaScript strings you utilize a backslash
• Example:– var menuText = ‘What\’s this?’;
Escape Sequences(Table 3-2) p27
Sequence Character represented
\0 The NUL character (\u0000)
\b Backspace (\u0008)
\t Horizontal tab (\u0009)
\n Newline (\u000A)
\v Vertical tab (\u000B)
\f Form feed (\u000C)
\r Carriage return (u\000D)
\” Double quote (u\0022)
\’ Apostrophe or single quote (u\0027)
\\ Backslash (\u005C)
\xXX The Latin-1 character specified by the two hexadecimal digits XX
\uXXXX The Unicode character specified by the four hexadecimal digits XXXX
\XXX The Latin-1 character specified by the octal digits XXX, between 1 and 377. Not support by ECMAScript v3; do not use this escpae sequence.
Adding Strings
• You can also add (or concatenate) strings simply by adding them.
Example:var anotherString = ‘new’;
var newVariable = ‘Something ‘ + anotherString;
• When adding numbers they will automatically be converting to strings.
Example:var x = 12;
var newString = x + ‘ dozen eggs’;
Converting Strings To Numbers
• Utilize the parseNumber utility functions to extract numbers from strings.– parseInt– parseFloat
• Example:
var x = “11”;
var xNum = parseInt(x);
Booleans
• true
(Other truthy values)• 1• {}• ‘ ‘ - space• ‘my String’
• false
(Other falsey values)• undefined• null• 0• “” – empty string
Equals vs Strictly Equals
• There is a strictly equals operator in JavaScript which will also check type as well as value. To show how this relates to boolean values:
•== Equals•Works for Truthy values
•=== Strictly Equals•Works for truth only
•!= Not Equals•Works for Falsey values
•!== Strictly Not Equals•Works for false only
Objects
• JavaScript Objects are similar to ColdFusion Structures.• They consist of zero to many key-value pairs.• They can be nested infinitely deep.• They provide an associative array or hash map.Example:// using the Object constructorvar newObj = new Object();newObj.x = 10;newObj.y = 20;// OR using the Object literal syntaxvar newObj = {x: 10, y: 20};
Object Literal
• Object literal is the preferred way to create objects because it is concise and consistent with JSON-syntax.
• When utilizing object literal syntax key value pairs are separated by colon’s.
• Keys are called properties
Functions
• Functions are actually a datatype too• Example:
var myFn = function() {console.log(‘hi’);};
function myFn() {console.log(‘hi’);}
These are 2 different ways of defining a similar function. There is also a Function constructor, however it’s use is limited because it can only create functions in the global scope.
Functions as Properties
• Properties of Objects can be any data type including Functions.
Example:var myObject = {myFun: function() {console.log(‘hi’);}};
myObject.myFun();
Arrays
• Arrays can be defined using 2 syntaxes as well.
Example:
// Utilizing the Array constructor
var myArray = new Array();
myArray[0] = 12;
myArray[1] = 232;
// OR using the Array literal syntax.
var myArray = [12,232];
Arrays (cont.)
• Arrays can be infinitely nested• Arrays can be sparse• Arrays can store unlike datatypes• Full reference available p 602-611
• Arrays provide a number of useful properties and methods such as:– length – property which defines how many elements are in the
Array– push – method which pushes another element on the Array
when utilized as a Stack– pop – method which pops an element off an Array when utilized
as a Stack
null vs undefined
• null
• “null is a special keyword which indicates no value”
• undefined
• “undefined is returned when you use either a variable that has not been declared but never had a value assigned to it or an object property that does not exist”
null vs undefined
• Both of these equate to a falsey value.
var myVar;
// what is the value of myVar?
Top Related