mirror of https://gitlab.com/octtspacc/OcttKB
54 lines
5.5 KiB
Plaintext
54 lines
5.5 KiB
Plaintext
created: 20221110145611678
|
|
creator: Octt
|
|
modified: 20231204004554051
|
|
modifier: Octt
|
|
tags: Development $:/i18n:en Web
|
|
title: JavaScript
|
|
|
|
''JavaScript'', or "JS", is an high-level programming language. It constitutes a core technology of the Web, sitting optionally alongside HTML and CSS. In recent years, it has gotten more and more popular even for desktop app and backend development.
|
|
|
|
<<^wikipediaframe JavaScript>>
|
|
|
|
* [[Ecma International TC39|https://tc39.es/]] - Committee maintaining JS specifications
|
|
|
|
!!! ''Resources''
|
|
|
|
* [[The Modern JavaScript Tutorial (javascript.info)|https://javascript.info/]] --- //How it's done now. From the basics to advanced topics with simple, but detailed explanations.//
|
|
* <<httpsL JavaScriptTutorial.net>> --- //helps you learn JavaScript programming from scratch quickly and effectively//
|
|
|
|
* [[Which equals operator (== vs ===) should be used in JavaScript comparisons?|https://stackoverflow.com/questions/359494/which-equals-operator-vs-should-be-used-in-javascript-comparisons]] ("Good and bad twins") --- `==` is bad unless explicitly needed, since it does type-coercion.
|
|
** [[In theory === is faster, no type conversion takes place. Practically there's no performance difference.|https://stackoverflow.com/questions/12332855/which-javascript-equality-operator-or-is-faster]]
|
|
** [[JavaScript-Equality-Table|https://dorey.github.io/JavaScript-Equality-Table/unified/]] - <<[ "[[Git|https://github.com/dorey/JavaScript-Equality-Table]]">>
|
|
* [[Environment detection: node.js or browser|https://stackoverflow.com/a/57774317]]
|
|
* [[Superpacking JS Demos|https://web.archive.org/web/20120919185414/http://daeken.com/superpacking-js-demos]]
|
|
* [["Illegal invocation" errors in JavaScript|https://mtsknn.fi/blog/illegal-invocations-in-js/]] --- //The error is thrown when calling a function whose `this` keyword isn't referring to the object where it originally did (when the context of the function is lost)//
|
|
* [[Does JavaScript have a method like "range()" to generate a range within the supplied bounds?|https://stackoverflow.com/questions/3895478/does-javascript-have-a-method-like-range-to-generate-a-range-within-the-supp]] --- `[...Array(5).keys()]`
|
|
* [[Listen for triple clicks in JavaScript|https://stackoverflow.com/questions/6480060/how-do-i-listen-for-triple-clicks-in-javascript#6480113]]
|
|
* [[Fastest method to escape HTML tags as HTML entities?|https://stackoverflow.com/questions/5499078/fastest-method-to-escape-html-tags-as-html-entities]] --- in the browser, `(html) => { var escape = document.createElement('textarea'); escape.textContent = html; return escape.innerHTML; }`
|
|
* [[Get a random item from a JavaScript array|https://stackoverflow.com/questions/5915096/get-a-random-item-from-a-javascript-array#5915122]] --- `item = items[Math.floor(Math.random() * items.length)];`
|
|
* [[Simplest code for array intersection in javascript|https://stackoverflow.com/questions/1885557/simplest-code-for-array-intersection-in-javascript#1885569]] --- `arrayNew = array1.filter(value => array2.includes(value));`
|
|
|
|
* [[How to get text from all descendents of an element (disregarding scripts)?|https://stackoverflow.com/questions/2532043/how-to-get-text-from-all-descendents-of-an-element-disregarding-scripts]]
|
|
* [[Converting HTML string into DOM elements?|https://stackoverflow.com/questions/3103962/converting-html-string-into-dom-elements#3104237]] --- `doc = new DOMParser().parseFromString(htmlString, 'text/html')`
|
|
* [[set doctype using javascript|https://stackoverflow.com/questions/21523487/set-doctype-using-javascript]]
|
|
* [[JavaScript Regex Replace Tutorial|https://www.javascripttutorial.net/javascript-regex/replace/]]
|
|
|
|
* [[Array.prototype.splice()|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice]], [[JavaScript Array splice() (W3S)|https://www.w3schools.com/jsref/jsref_splice.asp]] --- //changes the contents of an array by removing or replacing existing elements and/or adding new elements in place//
|
|
* <<MDNLink Web/JavaScript/Reference/Global_Objects/Array/concat "Array.prototype.concat()">> --- //used to merge two or more arrays, does not change the existing arrays but instead returns a new one//
|
|
* [[XMLHttpRequest|https://www.w3schools.com/xml/xml_http.asp]]
|
|
** <<MDNLink Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests "Synchronous and asynchronous requests">>
|
|
* [[HTML DOM Events|https://www.w3schools.com/jsref/dom_obj_event.asp]]
|
|
|
|
!!! ''Tools''
|
|
|
|
* [[jsPerf|https://jsperf.app/]] - //online JavaScript performance benchmark// - <<[ "[[Git|https://github.com/rd13/jsperf.app]]">>
|
|
** Old source code: [[v2|https://github.com/jsperf]], [[v1|https://github.com/mathiasbynens/jsperf.com]]
|
|
* [[MeasureThat.net|https://www.measurethat.net/]] - //measure performance of JavaScript code// - <<[ "[[Git|https://github.com/thecoderok/MeasureThat.net]]">>
|
|
|
|
* [[UglifyJS|https://lisperator.net/uglifyjs/]] - //JavaScript parser / mangler / compressor / beautifier// - <<[ "[[Git|https://github.com/mishoo/UglifyJS]]">>
|
|
** <<linkdescgit "UglifyJS 3: Online JavaScript minifier" "https://skalman.github.io/UglifyJS-online/" "JavaScript minifier in the browser" "https://github.com/Skalman/UglifyJS-online">>
|
|
* <<linkdescgit de4js "https://lelinhtinh.github.io/de4js" "JavaScript Deobfuscator and Unpacker" "https://github.com/lelinhtinh/de4js">>
|
|
|
|
* [[aaencode demo|https://utf-8.jp/public/aaencode.html]] --- //Encode any JavaScript program to Japanese style emoticons (^_^)//
|
|
* [[jjencode demo|https://utf-8.jp/public/jjencode.html]] --- encode JS using limited symbols
|