Please enable JavaScript to use CodeHS

CIW JavaScript Specialist Framework


Standard Description
1.1.1 List key JavaScript characteristics, including object-based nature, events, platformindependence, and differences between scripting languages and programming languages. Lessons
1.1.2 Identify common programming concepts, including objects, properties and methods. Lessons
1.1.3 Describe various JavaScript versions and flavors, including ECMA standards, JScript and similarities with proprietary scripting languages. Lessons
1.1.4 Distinguish between server-side and client-side JavaScript applications, including JavaScript interpreters and rendering engines. Lessons
1.1.5 Describe acceptable coding practices, including appropriate use of comment tags and the tag. Lessons
1.1.6 Examine the evolution of the role of JavaScript in simple Web page design, such as gaming, virtual reality (VR), native development, mobile device scripting and backend development. Lessons
1.2.1 Use attributes and methods to communicate with users, including the type attribute. Lessons
1.2.2 Define variables, data types and scope. Lessons
1.2.3 List keywords and reserved words. Lessons
1.2.4 Store user input in variables and evaluate for appropriate responses using the console and built-in methods such as alert() and prompt(). Lessons
1.2.5 Distinguish between concatenation and addition. Lessons
1.2.6 Use Apply operators, including string concatenation ( += ), strict comparison ( === , !==), mathematical precedence and bitwise operators. Lessons
1.2.7 Demonstrate how to use expressions. Lessons
1.2.8 Implement simple event handlers, including keyboard, mouse and mobile (gestures or touch) events. Lessons
1.3.1 Define and use methods as functions. Lessons
1.3.2 Demonstrate the use of various types of functions and function elements including prototype functions, anonymous functions, closure functions, arguments and the use of return values. Lessons
1.3.3 Distinguish between global and local variables. Lessons
1.3.4 Use the conditional operator. Lessons
1.3.5 Identify user events and event handlers. Lessons
1.3.6 Demonstrate the use of function specific methods including calling, binding and applying. Lessons
1.3.7 Use built-in functions and cast variables. Lessons
2.1.1 Demonstrate common steps for debugging JavaScript code, including reviewing code and testing code in different browsers and various devices. Lessons
2.1.2 Demonstrate how to use various native and supplemental debugging tools, including enabling/disabling display. Lessons
2.2.1 Use the if... statement. Lessons
2.2.2 Use the while... statement. Lessons
2.2.3 Use the do...while statement. Lessons
2.2.4 Use the for... statement. Lessons
2.2.5 Use the forEach statement. Lessons
2.2.6 Use the break and continue statements. Lessons
2.2.7 Use the switch... statement. Lessons
2.3.1 Use JavaScript to manipulate the Document Object Model (DOM). Lessons
2.3.2 Use the window object of the DOM. Lessons
2.3.3 Manipulate properties and methods of the document object within the DOM. Lessons
2.3.4 Use the image object of the DOM, including image rollover creation. Lessons
2.3.5 Use the history object of the DOM. Lessons
2.3.6 Evaluate and change URL information with the location object of the DOM. Lessons
2.3.7 Use the navigator object of the DOM. Lessons
2.3.8 Describe virtual DOM. Lessons
2.4.1 Use the String object to test user input. Lessons
2.4.2 Evaluate strings, including use of the length property, and use of the indexOf(), lastIndexOf(), substring() and charAt() methods. Lessons
2.4.3 Implement basic regular expressions and the RegExp object. Lessons
2.4.4 Use the Array object to create more efficient code. Lessons
2.4.5 Use the map() method. Lessons
2.4.6 Apply the Date and Math objects. Lessons
2.5.1 Create a custom JavaScript object. Lessons
2.5.2 Define properties and methods of custom objects. Lessons
2.5.3 Create new object instances. Lessons
2.5.4 Create client-side arrays using custom objects. Lessons
2.5.5 Create functions and methods for manipulating client-side arrays. Lessons
2.5.6 Use the prototype property, concept of classes, constructors, iterators and generators. Lessons
3.1.1 Identify steps and methods for changing HTML "on the fly," including the getElementById, getElementsByName, getElementsByTagName and getElementsByClassName methods of the DOM. Lessons
3.1.2 Modify attributes in HTML using DOM elements. Lessons
3.1.3 Modify form object values. Lessons
3.2.1 Identify and use form controls, including HTML5 form elements. Lessons
3.2.2 Define the form object. Lessons
3.2.3 Refer to form objects, including input, text, textarea, radio, checkbox, select, button, password, hidden, file and submit Lessons
3.2.4 Use form objects, including radio, select, button, text, input, textarea, checkbox, password, hidden, file and submit. Lessons
3.2.5 Conduct form validation. Lessons
3.2.6 Identify common form security issues. Lessons
3.3.1 Distinguish between the browser and the operating system in relation to the elements responsible for security. Lessons
3.3.2 Discuss browser security issues relevant to JavaScript, including script blocking, frame-toframe URL changing, and document.write behavior differences among browsers. Lessons
3.3.3 Define signed scripts Lessons
3.3.4 Perform client-side browser detection and determine browser compatibility. Lessons
3.3.5 Identify common issues and procedures for creating secure JavaScript code. Lessons
3.3.6 Define cross-site scripting and the associated security risks. Lessons
3.3.7 Define the functions and common uses of cookies. Lessons
3.3.8 Manipulate cookies effectively, including testing for presence of cookies, clearing cookies, enabling/disabling cookies in the browser, and deleting cookies from your hard drive. Lessons
3.3.9 Discuss ethics in collecting, storing, using and protecting user data Lessons
4.1.1 Identify and evaluate the benefits and drawbacks of using predefined libraries and frameworks, such as jQuery, Spry, Dojo, React.js, Angular.js and Prototype. Lessons
4.1.2 Identify steps for using libraries (such as jQuery), frameworks and available plug-ins, including, optimization for faster JavaScript manipulation. Lessons
4.1.3 Identify steps for loading and referencing external scripts and pre-made external scripts. Lessons
4.1.4 Identify and evaluate the benefits and drawbacks of Server-side JavaScript technologies. Lessons
4.1.5 Optimize page load time and user experience on various devices. Lessons
4.2.1 Define synchronous and asynchronous, fundamental AJAX elements, and procedures. Lessons
4.2.2 Explain the Fetch API, Promises and callback functions. Lessons
4.2.3 Use the XMLHttpRequest object to retrieve data. Lessons
4.2.4 Describe typical AJAX-based requests. Lessons
4.2.5 Identify key server response issues related to AJAX-based requests. Lessons
4.2.6 Use JavaScript to communicate with databases. Lessons
4.2.7 Identify and compare XML and JSON. Lessons
4.3.1 Define Web API (Application Programming Interface) and benefits Lessons
4.3.2 Identify and use Web APIs, including session storage, local storage, and GEO location. Lessons
4.3.3 Identify and use the Canvas API. Lessons