{"product_id":"beginning-javascript-paperback-softback-9781118903339","title":"Beginning JavaScript (Paperback \/ softback) 9781118903339","description":"\u003cfont face=\"Georgia\"\u003e\r\n\u003cp\u003e\u003cfont size=\"6\"\u003eBeginning JavaScript\u003c\/font\u003e\u003cbr\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003c\/p\u003e\n\u003cp\u003e\u003cfont size=\"4\"\u003eJeremy McPeak (Author)\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e9781118903339, Wiley\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003ePaperback \/ softback, published 24 April 2015\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e768 pages\u003cbr\u003e23.4 x 18.5 x 4.3 cm, 0.998 kg\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003cp align=\"justify\"\u003e\u003cstrong\u003e\u003cfont size=\"3\"\u003e\u003cb\u003eThe bestselling JavaScript guide, updated with current features and best practices\u003c\/b\u003e  \u003cp\u003e\u003ci\u003eBeginning JavaScript\u003c\/i\u003e \u003ci\u003e5th Edition\u003c\/i\u003e shows you how to work effectively with JavaScript frameworks, functions, and modern browsers, and teaches more effective coding practices using HTML5. This new edition has been extensively updated to reflect the way JavaScript is most commonly used today, introducing you to the latest tools and techniques available to JavaScript developers. Coverage includes modern coding practices using HTML5 markup, the JSON data format, DOM APIs, the jQuery framework, and more. Exercises with solutions provide plenty of opportunity to practice, and the companion website offers downloadable code for all examples given in the book.\u003c\/p\u003e \u003cul\u003e \u003cli\u003eLearn JavaScript using the most up to date coding style\u003c\/li\u003e \u003cli\u003eUnderstand JSON, functions, events, and feature detection\u003c\/li\u003e \u003cli\u003eUtilize the new HTML5 elements and the related API\u003c\/li\u003e \u003cli\u003eExplore new features including geolocation, local storage, and more\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eJavaScript has shaped the Web from a passive medium into one that is rich, dynamic, and interactive. No matter the technology on the server side, it's JavaScript that makes it come alive in the browser. To learn JavaScript the way it's used today, \u003ci\u003eBeginning JavaScript, 5th Edition\u003c\/i\u003e is your concise guide.\u003c\/p\u003e\u003c\/font\u003e\u003c\/strong\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e\u003cp\u003eIntroduction xix\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Introduction to Javascript and the Web 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroduction to JavaScript 1\u003c\/p\u003e \u003cp\u003eWhat is JavaScript? 2\u003c\/p\u003e \u003cp\u003eJavaScript and the Web 3\u003c\/p\u003e \u003cp\u003eWhat Can JavaScript Do for Me? 4\u003c\/p\u003e \u003cp\u003eTools Needed to Create JavaScript Web Applications 4\u003c\/p\u003e \u003cp\u003eDevelopment Tools 4\u003c\/p\u003e \u003cp\u003eWeb Browsers 5\u003c\/p\u003e \u003cp\u003eWhere Do My Scripts Go? 7\u003c\/p\u003e \u003cp\u003eLinking to an External JavaScript File 7\u003c\/p\u003e \u003cp\u003eAdvantages of Using an External File 8\u003c\/p\u003e \u003cp\u003eYour First Simple JavaScript Program 9\u003c\/p\u003e \u003cp\u003eWriting More JavaScript 10\u003c\/p\u003e \u003cp\u003eA Brief Look at Browsers and Compatibility Problems 15\u003c\/p\u003e \u003cp\u003eSummary 16\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Data Types and Variables 17\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eTypes of Data in JavaScript 18\u003c\/p\u003e \u003cp\u003eNumerical Data 18\u003c\/p\u003e \u003cp\u003eText Data 19\u003c\/p\u003e \u003cp\u003eBoolean Data 20\u003c\/p\u003e \u003cp\u003eVariables—Storing Data in Memory 20\u003c\/p\u003e \u003cp\u003eCreating Variables and Giving Them Values 22\u003c\/p\u003e \u003cp\u003eAssigning Variables with the Value of Other Variables 24\u003c\/p\u003e \u003cp\u003eUsing Data—Calculations and Basic String Manipulation 26\u003c\/p\u003e \u003cp\u003eNumerical Calculations 26\u003c\/p\u003e \u003cp\u003eIncrement and Decrement Operators 29\u003c\/p\u003e \u003cp\u003eOperator Precedence 30\u003c\/p\u003e \u003cp\u003eBasic String Operations 35\u003c\/p\u003e \u003cp\u003eMixing Numbers and Strings 37\u003c\/p\u003e \u003cp\u003eData Type Conversion 38\u003c\/p\u003e \u003cp\u003eDealing with Strings That Won’t Convert 41\u003c\/p\u003e \u003cp\u003eArrays 43\u003c\/p\u003e \u003cp\u003eA Multi‐Dimensional Array 47\u003c\/p\u003e \u003cp\u003eSummary 52\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Decisions and Loops 55\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDecision Making—The if and switch Statements 56\u003c\/p\u003e \u003cp\u003eComparison Operators 56\u003c\/p\u003e \u003cp\u003ePrecedence 57\u003c\/p\u003e \u003cp\u003eAssignment versus Comparison 57\u003c\/p\u003e \u003cp\u003eAssigning the Results of Comparisons 58\u003c\/p\u003e \u003cp\u003eThe if Statement 58\u003c\/p\u003e \u003cp\u003eLogical Operators 62\u003c\/p\u003e \u003cp\u003eAND 63\u003c\/p\u003e \u003cp\u003eOR 64\u003c\/p\u003e \u003cp\u003eNOT 64\u003c\/p\u003e \u003cp\u003eMultiple Conditions Inside an if Statement 65\u003c\/p\u003e \u003cp\u003eelse and else if 69\u003c\/p\u003e \u003cp\u003eComparing Strings 70\u003c\/p\u003e \u003cp\u003eThe switch Statement 71\u003c\/p\u003e \u003cp\u003eExecuting the Same Code for Different Cases 75\u003c\/p\u003e \u003cp\u003eLooping—The for and while Statements 76\u003c\/p\u003e \u003cp\u003eThe for Loop 76\u003c\/p\u003e \u003cp\u003eThe for…in Loop 80\u003c\/p\u003e \u003cp\u003eThe while Loop 80\u003c\/p\u003e \u003cp\u003eThe do…while loop 82\u003c\/p\u003e \u003cp\u003eThe break and continue Statements 83\u003c\/p\u003e \u003cp\u003eSummary 84\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Functions and Scope 87\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCreating Your Own Functions 88\u003c\/p\u003e \u003cp\u003eScope and Lifetime 92\u003c\/p\u003e \u003cp\u003eGlobal Scope 92\u003c\/p\u003e \u003cp\u003eFunctional Scope 93\u003c\/p\u003e \u003cp\u003eIdentifier Lookup 93\u003c\/p\u003e \u003cp\u003eFunctions as Values 94\u003c\/p\u003e \u003cp\u003eSummary 97\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: Javascript—An Object‐Based Language 99\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eObject‐Based Programming 100\u003c\/p\u003e \u003cp\u003eWhat are Objects? 100\u003c\/p\u003e \u003cp\u003eObjects in JavaScript 100\u003c\/p\u003e \u003cp\u003eUsing JavaScript Objects 101\u003c\/p\u003e \u003cp\u003eCreating an Object 102\u003c\/p\u003e \u003cp\u003eUsing an Object’s Properties 103\u003c\/p\u003e \u003cp\u003eCalling an Object’s Methods 104\u003c\/p\u003e \u003cp\u003ePrimitives and Objects 104\u003c\/p\u003e \u003cp\u003eJavaScript’s Native Object Types 105\u003c\/p\u003e \u003cp\u003eString Objects 105\u003c\/p\u003e \u003cp\u003eThe length Property 106\u003c\/p\u003e \u003cp\u003eFinding a String Inside Another String—The indexOf()\u003c\/p\u003e \u003cp\u003eand lastIndexOf() Methods 106\u003c\/p\u003e \u003cp\u003eCopying Part of a String—The substr() and substring() Methods 109\u003c\/p\u003e \u003cp\u003eConverting Case—The toLowerCase() and toUpperCase() Methods 110\u003c\/p\u003e \u003cp\u003eSelecting a Single Character from a String—The charAt() and charCodeAt() Methods 111\u003c\/p\u003e \u003cp\u003eConverting Character Codes to a String—The fromCharCode() Method 115\u003c\/p\u003e \u003cp\u003eRemoving Leading and Trailing Whitespace—The trim() Method 115\u003c\/p\u003e \u003cp\u003eArray Objects 116\u003c\/p\u003e \u003cp\u003eFinding Out How Many Elements are in an Array—The length Property 116\u003c\/p\u003e \u003cp\u003eAdding Elements—The push() Method 117\u003c\/p\u003e \u003cp\u003eJoining Arrays—The concat() Method 117\u003c\/p\u003e \u003cp\u003eCopying Part of an Array—The slice() Method 118\u003c\/p\u003e \u003cp\u003eConverting an Array into a Single String—The join() Method 119\u003c\/p\u003e \u003cp\u003ePutting Your Array in Order—The sort() Method 119\u003c\/p\u003e \u003cp\u003ePutting Your Array into Reverse Order—The reverse() Method 121\u003c\/p\u003e \u003cp\u003eFinding Array Elements—The indexOf() and lastIndexOf() Methods 122\u003c\/p\u003e \u003cp\u003eIterating through an Array without Loops 123\u003c\/p\u003e \u003cp\u003eThe Math Object 126\u003c\/p\u003e \u003cp\u003eThe abs() Method 127\u003c\/p\u003e \u003cp\u003eFinding the Largest and Smallest Numbers—The min() and max() Methods 127\u003c\/p\u003e \u003cp\u003eRounding Numbers 127\u003c\/p\u003e \u003cp\u003eThe random() Method 131\u003c\/p\u003e \u003cp\u003eThe pow() Method 132\u003c\/p\u003e \u003cp\u003eNumber Objects 134\u003c\/p\u003e \u003cp\u003eThe toFixed() Method 134\u003c\/p\u003e \u003cp\u003eDate Objects 135\u003c\/p\u003e \u003cp\u003eCreating a Date Object 135\u003c\/p\u003e \u003cp\u003eGetting Date Values 136\u003c\/p\u003e \u003cp\u003eSetting Date Values 139\u003c\/p\u003e \u003cp\u003eCalculations and Dates 140\u003c\/p\u003e \u003cp\u003eGetting Time Values 140\u003c\/p\u003e \u003cp\u003eSetting Time Values 143\u003c\/p\u003e \u003cp\u003eCreating Your Own Custom Objects 144\u003c\/p\u003e \u003cp\u003eCreating New Types of Objects (Reference Types) 148\u003c\/p\u003e \u003cp\u003eDefining a Reference Type 149\u003c\/p\u003e \u003cp\u003eCreating and Using Reference Type Instances 150\u003c\/p\u003e \u003cp\u003eSummary 151\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: String Manipulation 153\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAdditional String Methods 154\u003c\/p\u003e \u003cp\u003eThe split() Method 154\u003c\/p\u003e \u003cp\u003eThe replace() Method 156\u003c\/p\u003e \u003cp\u003eThe search() Method 157\u003c\/p\u003e \u003cp\u003eThe match() Method 157\u003c\/p\u003e \u003cp\u003eRegular Expressions 158\u003c\/p\u003e \u003cp\u003eSimple Regular Expressions 159\u003c\/p\u003e \u003cp\u003eRegular Expressions: Special Characters 162\u003c\/p\u003e \u003cp\u003eText, Numbers, and Punctuation 162\u003c\/p\u003e \u003cp\u003eRepetition Characters 165\u003c\/p\u003e \u003cp\u003ePosition Characters 166\u003c\/p\u003e \u003cp\u003eCovering All Eventualities 170\u003c\/p\u003e \u003cp\u003eGrouping Regular Expressions 171\u003c\/p\u003e \u003cp\u003eReusing Groups of Characters 173\u003c\/p\u003e \u003cp\u003eThe String Object 175\u003c\/p\u003e \u003cp\u003eThe split() Method 175\u003c\/p\u003e \u003cp\u003eThe replace() Method 177\u003c\/p\u003e \u003cp\u003eThe search() Method 179\u003c\/p\u003e \u003cp\u003eThe match() Method 180\u003c\/p\u003e \u003cp\u003eUsing the RegExp Object’s Constructor 183\u003c\/p\u003e \u003cp\u003eTelephone Number Validation 185\u003c\/p\u003e \u003cp\u003eValidating a Postal Code 187\u003c\/p\u003e \u003cp\u003eValidating an E‐mail Address 189\u003c\/p\u003e \u003cp\u003eValidating a Domain Name 189\u003c\/p\u003e \u003cp\u003eValidating a Person’s Address 190\u003c\/p\u003e \u003cp\u003eValidating the Complete Address 190\u003c\/p\u003e \u003cp\u003eSummary 191\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Date, Time, and Timers 193\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWorld Time 194\u003c\/p\u003e \u003cp\u003eSetting and Getting a Date Object’s UTC Date and Time 197\u003c\/p\u003e \u003cp\u003eTimers in a Web Page 200\u003c\/p\u003e \u003cp\u003eOne‐Shot Timer 200\u003c\/p\u003e \u003cp\u003eSetting a Timer that Fires at Regular Intervals 202\u003c\/p\u003e \u003cp\u003eSummary 203\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: Programming the Browser 205\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroduction to the Browser’s Objects 206\u003c\/p\u003e \u003cp\u003eThe window Object 207\u003c\/p\u003e \u003cp\u003eThe history Object 208\u003c\/p\u003e \u003cp\u003eThe location Object 209\u003c\/p\u003e \u003cp\u003eThe navigator Object 210\u003c\/p\u003e \u003cp\u003eThe geolocation Object 210\u003c\/p\u003e \u003cp\u003eThe screen Object 213\u003c\/p\u003e \u003cp\u003eThe document Object 213\u003c\/p\u003e \u003cp\u003eUsing the document Object 214\u003c\/p\u003e \u003cp\u003eThe images Collection 216\u003c\/p\u003e \u003cp\u003eThe links Collection 218\u003c\/p\u003e \u003cp\u003eDetermining the User’s Browser 218\u003c\/p\u003e \u003cp\u003eFeature Detection 218\u003c\/p\u003e \u003cp\u003eBrowser Sniffing 221\u003c\/p\u003e \u003cp\u003eSummary 225\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: DOM Scripting 229\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Web Standards 231\u003c\/p\u003e \u003cp\u003eHTML 232\u003c\/p\u003e \u003cp\u003eECMAScript 233\u003c\/p\u003e \u003cp\u003eThe Document Object Model 234\u003c\/p\u003e \u003cp\u003eThe DOM Standard 234\u003c\/p\u003e \u003cp\u003eLevel 0 234\u003c\/p\u003e \u003cp\u003eLevel 1 234\u003c\/p\u003e \u003cp\u003eLevel 2 235\u003c\/p\u003e \u003cp\u003eLevel 3 235\u003c\/p\u003e \u003cp\u003eLevel 4 235\u003c\/p\u003e \u003cp\u003eBrowser Compliance with the Standards 235\u003c\/p\u003e \u003cp\u003eDifferences between the DOM and the BOM 236\u003c\/p\u003e \u003cp\u003eRepresenting the HTML Document as a Tree Structure 236\u003c\/p\u003e \u003cp\u003eWhat is a Tree Structure? 236\u003c\/p\u003e \u003cp\u003eAn Example HTML Page 237\u003c\/p\u003e \u003cp\u003eThe Core DOM Objects 238\u003c\/p\u003e \u003cp\u003eBase DOM Objects 238\u003c\/p\u003e \u003cp\u003eHigh‐Level DOM Objects 239\u003c\/p\u003e \u003cp\u003eDOM Objects and Their Properties and Methods 240\u003c\/p\u003e \u003cp\u003eThe Document Object and its Methods 240\u003c\/p\u003e \u003cp\u003eThe Element Object 246\u003c\/p\u003e \u003cp\u003eThe Node Object 250\u003c\/p\u003e \u003cp\u003eManipulating the DOM 259\u003c\/p\u003e \u003cp\u003eAccessing Elements 259\u003c\/p\u003e \u003cp\u003eChanging Appearances 259\u003c\/p\u003e \u003cp\u003eUsing the style Property 259\u003c\/p\u003e \u003cp\u003eChanging the class Attribute 262\u003c\/p\u003e \u003cp\u003ePositioning and Moving Content 263\u003c\/p\u003e \u003cp\u003eExample: Animated Advertisement 264\u003c\/p\u003e \u003cp\u003eAre We There Yet? 264\u003c\/p\u003e \u003cp\u003ePerforming the Animation 265\u003c\/p\u003e \u003cp\u003eSummary 268\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Events 271\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eTypes of Events 272\u003c\/p\u003e \u003cp\u003eConnecting Code to Events 273\u003c\/p\u003e \u003cp\u003eHandling Events via HTML Attributes 273\u003c\/p\u003e \u003cp\u003eHandling Events via Object Properties 280\u003c\/p\u003e \u003cp\u003eThe Standard Event Model 283\u003c\/p\u003e \u003cp\u003eConnecting Code to Events—The Standard Way 283\u003c\/p\u003e \u003cp\u003eUsing Event Data 289\u003c\/p\u003e \u003cp\u003eEvent Handling in Old Versions of Internet Explorer 298\u003c\/p\u003e \u003cp\u003eAccessing the event Object 298\u003c\/p\u003e \u003cp\u003eUsing Event Data 300\u003c\/p\u003e \u003cp\u003eWriting Cross‐Browser Code 307\u003c\/p\u003e \u003cp\u003eNative Drag and Drop 317\u003c\/p\u003e \u003cp\u003eMaking Content Draggable 318\u003c\/p\u003e \u003cp\u003eCreating a Drop Target 319\u003c\/p\u003e \u003cp\u003eTransferring Data 325\u003c\/p\u003e \u003cp\u003eSummary 333\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: HTML Forms: Interacting With the User 335\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eHTML Forms 336\u003c\/p\u003e \u003cp\u003eTraditional Form Object Properties and Methods 338\u003c\/p\u003e \u003cp\u003eHTML Elements in Forms 339\u003c\/p\u003e \u003cp\u003eCommon Properties and Methods 340\u003c\/p\u003e \u003cp\u003eThe name Property 340\u003c\/p\u003e \u003cp\u003eThe value Property 340\u003c\/p\u003e \u003cp\u003eThe form Property 340\u003c\/p\u003e \u003cp\u003eThe type Property 340\u003c\/p\u003e \u003cp\u003eThe focus() and blur() Methods 340\u003c\/p\u003e \u003cp\u003eButton Elements 341\u003c\/p\u003e \u003cp\u003eText Elements 345\u003c\/p\u003e \u003cp\u003eThe Text Box 345\u003c\/p\u003e \u003cp\u003eProblems with Firefox and the blur Event 350\u003c\/p\u003e \u003cp\u003eThe Password Text Box 351\u003c\/p\u003e \u003cp\u003eThe Hidden Text Box 351\u003c\/p\u003e \u003cp\u003eThe textarea Element 351\u003c\/p\u003e \u003cp\u003eCheck Boxes and Radio Buttons 355\u003c\/p\u003e \u003cp\u003eSelection Boxes 364\u003c\/p\u003e \u003cp\u003eAdding and Removing Options 365\u003c\/p\u003e \u003cp\u003eAdding New Options with Standard Methods 369\u003c\/p\u003e \u003cp\u003eSelect Element Events 370\u003c\/p\u003e \u003cp\u003eHTML5 Form Object Properties and Methods 375\u003c\/p\u003e \u003cp\u003eNew Input Types 376\u003c\/p\u003e \u003cp\u003eNew Elements 380\u003c\/p\u003e \u003cp\u003eThe Element 380\u003c\/p\u003e \u003cp\u003eThe and Elements 382\u003c\/p\u003e \u003cp\u003eSummary 386\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12: JSON 391\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eXML 392\u003c\/p\u003e \u003cp\u003eJSON 393\u003c\/p\u003e \u003cp\u003eSimple Values 394\u003c\/p\u003e \u003cp\u003eObjects 394\u003c\/p\u003e \u003cp\u003eArrays 395\u003c\/p\u003e \u003cp\u003eSerializing Into JSON 396\u003c\/p\u003e \u003cp\u003eParsing JSON 396\u003c\/p\u003e \u003cp\u003eSummary 400\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13: Data Storage 403\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBaking Your First Cookie 404\u003c\/p\u003e \u003cp\u003eA Fresh‐Baked Cookie 404\u003c\/p\u003e \u003cp\u003eViewing Cookies in Internet Explorer 404\u003c\/p\u003e \u003cp\u003eViewing Cookies in Firefox 409\u003c\/p\u003e \u003cp\u003eViewing Cookies in Chrome 411\u003c\/p\u003e \u003cp\u003eThe Cookie String 413\u003c\/p\u003e \u003cp\u003ename and value 413\u003c\/p\u003e \u003cp\u003eexpires 413\u003c\/p\u003e \u003cp\u003epath 414\u003c\/p\u003e \u003cp\u003edomain 415\u003c\/p\u003e \u003cp\u003esecure 416\u003c\/p\u003e \u003cp\u003eCreating a Cookie 416\u003c\/p\u003e \u003cp\u003eGetting a Cookie’s Value 419\u003c\/p\u003e \u003cp\u003eCookie Limitations 424\u003c\/p\u003e \u003cp\u003eA User May Disable Cookies 424\u003c\/p\u003e \u003cp\u003eNumber and Information Limitation 425\u003c\/p\u003e \u003cp\u003eCookie Security and IE 425\u003c\/p\u003e \u003cp\u003eWeb Storage 426\u003c\/p\u003e \u003cp\u003eSetting Data 427\u003c\/p\u003e \u003cp\u003eGetting Data 428\u003c\/p\u003e \u003cp\u003eRemoving Data 428\u003c\/p\u003e \u003cp\u003eStoring Data as Strings 428\u003c\/p\u003e \u003cp\u003eViewing Web Storage Content 431\u003c\/p\u003e \u003cp\u003eSummary 432\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14: Ajax 435\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat is Ajax? 436\u003c\/p\u003e \u003cp\u003eWhat Can It Do? 436\u003c\/p\u003e \u003cp\u003eGoogle Maps 436\u003c\/p\u003e \u003cp\u003eGoogle Suggest 436\u003c\/p\u003e \u003cp\u003eBrowser Support 436\u003c\/p\u003e \u003cp\u003eUsing the XMLHttpRequest Object 438\u003c\/p\u003e \u003cp\u003eCreating an XMLHttpRequest Object 438\u003c\/p\u003e \u003cp\u003eUsing the XMLHttpRequest Object 438\u003c\/p\u003e \u003cp\u003eAsynchronous Requests 440\u003c\/p\u003e \u003cp\u003eCreating a Simple Ajax Module 441\u003c\/p\u003e \u003cp\u003ePlanning the HttpRequest Module 441\u003c\/p\u003e \u003cp\u003eThe HttpRequest Constructor 442\u003c\/p\u003e \u003cp\u003eCreating the send() Method 443\u003c\/p\u003e \u003cp\u003eThe Full Code 443\u003c\/p\u003e \u003cp\u003eValidating Form Fields with Ajax 444\u003c\/p\u003e \u003cp\u003eRequesting Information 445\u003c\/p\u003e \u003cp\u003eThe Received Data 445\u003c\/p\u003e \u003cp\u003eBefore You Begin 446\u003c\/p\u003e \u003cp\u003eA Web Server 446\u003c\/p\u003e \u003cp\u003ePHP 447\u003c\/p\u003e \u003cp\u003eThings to Watch Out For 453\u003c\/p\u003e \u003cp\u003eSecurity Issues 454\u003c\/p\u003e \u003cp\u003eThe Same‐Origin Policy 454\u003c\/p\u003e \u003cp\u003eCORS 454\u003c\/p\u003e \u003cp\u003eUsability Concerns 455\u003c\/p\u003e \u003cp\u003eThe Browser’s Back Button 455\u003c\/p\u003e \u003cp\u003eCreating a Back\/Forward‐Capable Form with an IFrame 455\u003c\/p\u003e \u003cp\u003eThe Server Response 456\u003c\/p\u003e \u003cp\u003eDealing with Delays 460\u003c\/p\u003e \u003cp\u003eDegrade Gracefully When Ajax Fails 461\u003c\/p\u003e \u003cp\u003eSummary 462\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15: HTML5 Media 463\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eA Primer 464\u003c\/p\u003e \u003cp\u003eScripting Media 467\u003c\/p\u003e \u003cp\u003eMethods 468\u003c\/p\u003e \u003cp\u003eProperties 471\u003c\/p\u003e \u003cp\u003eEvents 477\u003c\/p\u003e \u003cp\u003eSummary 481\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 16: jQuery 483\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGetting jQuery 484\u003c\/p\u003e \u003cp\u003ejQuery’s API 485\u003c\/p\u003e \u003cp\u003eSelecting Elements 485\u003c\/p\u003e \u003cp\u003eChanging Style 487\u003c\/p\u003e \u003cp\u003eAdding and Removing CSS Classes 488\u003c\/p\u003e \u003cp\u003eToggling Classes 489\u003c\/p\u003e \u003cp\u003eChecking if a Class Exists 490\u003c\/p\u003e \u003cp\u003eCreating, Appending, and Removing Elements 490\u003c\/p\u003e \u003cp\u003eCreating Elements 491\u003c\/p\u003e \u003cp\u003eAppending Elements 491\u003c\/p\u003e \u003cp\u003eRemoving Elements 492\u003c\/p\u003e \u003cp\u003eHandling Events 492\u003c\/p\u003e \u003cp\u003eThe jQuery Event Object 493\u003c\/p\u003e \u003cp\u003eRewriting the Tab Strip with jQuery 494\u003c\/p\u003e \u003cp\u003eUsing jQuery for Ajax 497\u003c\/p\u003e \u003cp\u003eUnderstanding the jQuery Function 497\u003c\/p\u003e \u003cp\u003eAutomatically Parsing JSON Data 498\u003c\/p\u003e \u003cp\u003eThe jqXHR Object 498\u003c\/p\u003e \u003cp\u003eSummary 504\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 17: Other Javascript Libraries 505\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDigging into Modernizr 506\u003c\/p\u003e \u003cp\u003eGetting Modernizr 507\u003c\/p\u003e \u003cp\u003eModernizr’s API 508\u003c\/p\u003e \u003cp\u003eCustom Tests 509\u003c\/p\u003e \u003cp\u003eLoading Resources 510\u003c\/p\u003e \u003cp\u003eDiving into Prototype 515\u003c\/p\u003e \u003cp\u003eGetting Prototype 515\u003c\/p\u003e \u003cp\u003eTesting Your Prototype Installation 516\u003c\/p\u003e \u003cp\u003eRetrieving Elements 517\u003c\/p\u003e \u003cp\u003eSelecting Elements with CSS Selectors 518\u003c\/p\u003e \u003cp\u003ePerforming an Operation on Elements Selected with $$() 519\u003c\/p\u003e \u003cp\u003eManipulating Style 519\u003c\/p\u003e \u003cp\u003eCreating, Inserting, and Removing Elements 520\u003c\/p\u003e \u003cp\u003eCreating an Element 520\u003c\/p\u003e \u003cp\u003eAdding Content 520\u003c\/p\u003e \u003cp\u003eRemoving an Element 521\u003c\/p\u003e \u003cp\u003eUsing Events 521\u003c\/p\u003e \u003cp\u003eRewriting the Tab Strip with Prototype 522\u003c\/p\u003e \u003cp\u003eUsing Ajax Support 525\u003c\/p\u003e \u003cp\u003eDelving into MooTools 531\u003c\/p\u003e \u003cp\u003eGetting MooTools 531\u003c\/p\u003e \u003cp\u003eTesting Your MooTools Installation 531\u003c\/p\u003e \u003cp\u003eFinding Elements 533\u003c\/p\u003e \u003cp\u003eSelecting Elements with CSS Selectors 533\u003c\/p\u003e \u003cp\u003ePerforming Operations on Elements 533\u003c\/p\u003e \u003cp\u003eChanging Style 534\u003c\/p\u003e \u003cp\u003eCreating, Inserting, and Removing Elements 535\u003c\/p\u003e \u003cp\u003eUsing Events 536\u003c\/p\u003e \u003cp\u003eRewriting the Tab Strip with MooTools 537\u003c\/p\u003e \u003cp\u003eAjax Support in MooTools 540\u003c\/p\u003e \u003cp\u003eSummary 546\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 18: Common Mistakes, Debugging, and Error Handling 549\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eD’oh! I Can’t Believe I Just Did That: Some Common Mistakes 550\u003c\/p\u003e \u003cp\u003eUndefi ned Variables 550\u003c\/p\u003e \u003cp\u003eCase Sensitivity 551\u003c\/p\u003e \u003cp\u003eIncorrect Number of Closing Braces 552\u003c\/p\u003e \u003cp\u003eIncorrect Number of Closing Parentheses 553\u003c\/p\u003e \u003cp\u003eUsing Equals (=) Rather than Equality (==) 553\u003c\/p\u003e \u003cp\u003eUsing a Method as a Property and Vice Versa 554\u003c\/p\u003e \u003cp\u003eMissing Plus Signs during Concatenation 554\u003c\/p\u003e \u003cp\u003eError Handling 555\u003c\/p\u003e \u003cp\u003ePreventing Errors 555\u003c\/p\u003e \u003cp\u003eThe try…catch Statements 556\u003c\/p\u003e \u003cp\u003eThrowing Errors 557\u003c\/p\u003e \u003cp\u003eNested try…catch Statements 562\u003c\/p\u003e \u003cp\u003efinally Clauses 562\u003c\/p\u003e \u003cp\u003eDebugging 563\u003c\/p\u003e \u003cp\u003eDebugging in Chrome (and Opera) 564\u003c\/p\u003e \u003cp\u003eSetting Breakpoints 566\u003c\/p\u003e \u003cp\u003eScope Variables and Watches 566\u003c\/p\u003e \u003cp\u003eStepping through Code 567\u003c\/p\u003e \u003cp\u003eThe Console 571\u003c\/p\u003e \u003cp\u003eCall Stack Window 573\u003c\/p\u003e \u003cp\u003eDebugging in Internet Explorer 574\u003c\/p\u003e \u003cp\u003eSetting Breakpoints 576\u003c\/p\u003e \u003cp\u003eAdding Watches 576\u003c\/p\u003e \u003cp\u003eStepping through Code 576\u003c\/p\u003e \u003cp\u003eThe Console 577\u003c\/p\u003e \u003cp\u003eDebugging in Firefox with Firebug 578\u003c\/p\u003e \u003cp\u003eSetting Breakpoints 578\u003c\/p\u003e \u003cp\u003eWatches 579\u003c\/p\u003e \u003cp\u003eStepping through Code 580\u003c\/p\u003e \u003cp\u003eThe Console 580\u003c\/p\u003e \u003cp\u003eDebugging in Safari 580\u003c\/p\u003e \u003cp\u003eSetting Breakpoints 583\u003c\/p\u003e \u003cp\u003eAdding Watches 583\u003c\/p\u003e \u003cp\u003eStepping through Code 583\u003c\/p\u003e \u003cp\u003eThe Console 583\u003c\/p\u003e \u003cp\u003eSummary 583\u003c\/p\u003e \u003cp\u003eAppendix A: Answers to Exercises 587\u003c\/p\u003e \u003cp\u003eAppendix B: Javascript Core Reference 653\u003c\/p\u003e \u003cp\u003eAppendix C: W3C DOM Reference 683\u003c\/p\u003e \u003cp\u003eAppendix D: Latin‐1 Character Set 715\u003c\/p\u003e \u003cp\u003eIndex 723\u003c\/p\u003e\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eSubject Areas: Internet guides \u0026amp; online services [\u003ca title=\"See our other books on Internet guides \u0026amp; online services\" href=\"https:\/\/freshlyprintedbooks.co.uk\/search?q=%22Internet%20guides%20\u0026amp;%20online%20services%20%5BUDB%5D%22\"\u003eUDB\u003c\/a\u003e]\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\u003c\/font\u003e","brand":"Wrox","offers":[{"title":"Brand New","offer_id":52462986330392,"sku":"9781118903339","price":27.29,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0730\/2037\/5320\/files\/9781118903339.jpg?v=1785544394","url":"https:\/\/freshlyprintedbooks.co.uk\/products\/beginning-javascript-paperback-softback-9781118903339","provider":"Freshly Printed Books","version":"1.0","type":"link"}