Javascript

software-development

https://levelup.gitconnected.com/a-recap-of-frontend-development-in-2019-1e7d07966d6c
http://www.richmediacs.com/user_manuals/JavaScript/JavaScript%20Notes.html
https://www.impressivewebs.com/avoiding-problems-with-javascript-getelementbyid-method-in-internet-explorer-7/

Articles
Resources
Tools
Books
Videos
Libraries
APIs
Good parts & bad parts
cheatsheet

Types:
Boolean
Null
Number
Basic data types
Date
RegExp
Arrays
Sorting and searching
NaN
isInteger
Type coercion
Type checking
Falsy values
The == operator does coercion
Math
Functions
How to compare variables and objects

Built-in functions and constructs:
The escape, encodeURI, and encodeURIComponent methods
The for-in loop
setTimeout
Reserved keywords
The in operator
The comma operator
The "use strict" statement
Variables
Statements
Operators
Comments
Objects

Gotchas / Problems:
Gotchas
Difference between attributes and properties
javascript-with
Eval
Loop
Block scope
Division by zero
Problem with semicolon insertion
Problem with function hoisting
Differences between null and undefined
Using objects as keys
The delete operator
The var keyword is only applied to one variable
Problem with eval and named function expression
Difference between run-time and parse-time
Variable and function hoisting
this
call and apply
bind
Obscure stuffs
Memory Leaks

Error handling / Debugging:
Exception, error handling, common or obscure JavaScript errors
Debugging
Debuggers
Debugger - Venkman

Standards:
The standards
ecmascript-6
ecmascript-5

Tools / Sub-languages:
TypeScript
Server side javascript
Advantages and disadvantages of using transpilers
AMD / Dependency Management / Module Loader

Design Patterns:
Design Patterns
OOP
Namespacing
Observer
Observables

DOM:
DOM Manipulation and traversal
Feature detection
Cookies
AJAX
JSONP
CORS

Convention / Culture:
Naming convention
Style Guide
Best Practices
Function is a first class object

Advance:
closure
curry
IIFE
Named function expression
Mixins
Immutable data structures
The module pattern
Memoization
Testing
Unit Test
Code Coverage
Profiling / Benchmarking
Recursion
Pointers or references
javascript-revealing
Promises
Async / Await
Deferred and async scripts
Client-side rendering versus server-side rendering
Unobtrusive

Misc:
interview-javascript
Miscellaneous

Object.create
Object.freeze
Object.thaw

Functional Programming

What is the purpose of this page?

Using a cross-browser DOM manipulation libraries such as jQuery is nice, but there are circumstances where it is just not appropriate. What about when you want to contribute to such cross-browser DOM manipulation libraries? The purpose of this page is to list all the DOM-manipulation methods that I know about, and to provide a reference point for me to refer to when I face some challenge. The examples may not be complete, but they are the starting point for me to research and experiment until I come up with the perfect solution for me. You may need to experiment with these examples to come up with your own solution for the browser that you need to support.

This page is not intended to be complete on all the other functions. Long ago, Mozilla corporation used to publish PDFs that are very useful, one of which was particularly very useful to me, but it is hard to find this PDF file now. Therefore, I've put this PDF on Google Docs at https://drive.google.com/file/d/0B_4moJAr5vDPZGplSC1JbTZVNnc/edit?usp=sharing. If you wish to download this file to your computer, you need to click on Files -> Download

Use http://www.webplatform.org/, http://docs.webplatform.org/wiki/Main_Page, and Google as the starting point for your research.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License