jfraboni edited this page Oct 24, 2014 · 2 revisions

Writing and Running Applications

A computer program, is a sequence of instructions, written to perform a specified task or tasks on a computer.

We write programs using a programming language, and a high level language like JavaScript allows us to express our ideas more easily because the syntax is more like the English language than older languages that were modeled on binary switches, combinations of zeros and ones. When we write programs, we describe objects by specifying their properties and defining their behaviours, that is, what they're made of and what they can do and how they interact with other objects. Then we create objects and get them to interact with each other - simple, no?

Like many languages, programs written in Javascript are executed in a special runtime environment or interpreter, or sometimes what is called an engine.

Similar to the way in which a person reads a book, a JavaScript interpreter reads the programs you've written line by line, holding objects in memory as they are introduced on each line. When you read a book, or someone tells you a story, you hold the characters and events that transpire in your memory, and once the characters are in your memory and they participate in events, the story begins to make sense and unfold.

Same thing with a computer program. There's some pre-scanning that happens though: for example, and very simply put, function definitions within the scope current object are hoisted - pulled up into memory - before the execution of statements, even though these functions may be defined later in your page of code. You might compare this to the way in which the director of a play will want to know all of the actors within a scene, even though they are not on stage from the beginning of the act.

The word runtime is used to describe the environment in which your application is run, and in the case of JavaScript, it is an intepreter of some variant that, at runtime, reads your source text - the code you've written - and then executes statements line by line. And when we're running the application, we say, "At runtime...". This is the case in variation for many languages, Java, Python, etc.

When we ask the interpreter to run our program, it looks at all the objects we've described, and line by line trys to make them interact with each other by reading our statements and evaluating the expressions we've written.

You can think of statements as stating something, sort of like sentences or even paragraphs, which can include expressions. And in JavaScript, we end statements with a semi-colon ;:

// a statement:varcount=0;// another statement, including an expression:varnameFirst="Jack",nameLast="Jones",fullName=nameFirst+' '+nameLast;console.log(fullName);// prints Jack Jones

These are both statements, they both state that the variables count, nameFirst and nameLast exist and are initialized with some values, but the second statement creates three variables in the same statement and includes an expression, fullName = nameFirst + ' ' + nameLast, whereas the first statement simply declares a single variable.

You can view expressions as a value first requiring evaluation, but that's open to interpretation. So, in the above example, the iterpreter had to evaluate the value of nameFirst, the value of a String literal " ", and the value of nameLast in order to concatenate them into a single String to become the value of fullName.

Everything in JavaScript is an Object, or can be treated as one, including primative types, like numbers and strings. An Object is the basic thing from which all other things are dirived. We can even create blank objects, think of them like empty containers, or a blob of clay which you can shape and define even while the program is runnning. Or before the program is running, you can define a type of Object, like a Person or a Car type of Object. Essentially, objects are merely key - value pairs, which means, everything we put inside an Object is named - the key - and by that name we can access the value.

The more specific we need an Object to be, the more we need to describe it for the interpreter. A Car is fairly generic, whereas a Lamborghini, much more speicific and awesome.

For everything we need our application to do, we build types of objects that can do specific things, and interacting together, these objects are our application.

© 2014-2015 Operation Spark

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
jfraboni edited this page Oct 24, 2014 · 2 revisions

Writing and Running Applications

A computer program, is a sequence of instructions, written to perform a specified task or tasks on a computer.

We write programs using a programming language, and a high level language like JavaScript allows us to express our ideas more easily because the syntax is more like the English language than older languages that were modeled on binary switches, combinations of zeros and ones. When we write programs, we describe objects by specifying their properties and defining their behaviours, that is, what they're made of and what they can do and how they interact with other objects. Then we create objects and get them to interact with each other - simple, no?

Like many languages, programs written in Javascript are executed in a special runtime environment or interpreter, or sometimes what is called an engine.

Similar to the way in which a person reads a book, a JavaScript interpreter reads the programs you've written line by line, holding objects in memory as they are introduced on each line. When you read a book, or someone tells you a story, you hold the characters and events that transpire in your memory, and once the characters are in your memory and they participate in events, the story begins to make sense and unfold.

Same thing with a computer program. There's some pre-scanning that happens though: for example, and very simply put, function definitions within the scope current object are hoisted - pulled up into memory - before the execution of statements, even though these functions may be defined later in your page of code. You might compare this to the way in which the director of a play will want to know all of the actors within a scene, even though they are not on stage from the beginning of the act.

The word runtime is used to describe the environment in which your application is run, and in the case of JavaScript, it is an intepreter of some variant that, at runtime, reads your source text - the code you've written - and then executes statements line by line. And when we're running the application, we say, "At runtime...". This is the case in variation for many languages, Java, Python, etc.

When we ask the interpreter to run our program, it looks at all the objects we've described, and line by line trys to make them interact with each other by reading our statements and evaluating the expressions we've written.

You can think of statements as stating something, sort of like sentences or even paragraphs, which can include expressions. And in JavaScript, we end statements with a semi-colon ;:

// a statement:varcount=0;// another statement, including an expression:varnameFirst="Jack",nameLast="Jones",fullName=nameFirst+' '+nameLast;console.log(fullName);// prints Jack Jones

These are both statements, they both state that the variables count, nameFirst and nameLast exist and are initialized with some values, but the second statement creates three variables in the same statement and includes an expression, fullName = nameFirst + ' ' + nameLast, whereas the first statement simply declares a single variable.

You can view expressions as a value first requiring evaluation, but that's open to interpretation. So, in the above example, the iterpreter had to evaluate the value of nameFirst, the value of a String literal " ", and the value of nameLast in order to concatenate them into a single String to become the value of fullName.

Everything in JavaScript is an Object, or can be treated as one, including primative types, like numbers and strings. An Object is the basic thing from which all other things are dirived. We can even create blank objects, think of them like empty containers, or a blob of clay which you can shape and define even while the program is runnning. Or before the program is running, you can define a type of Object, like a Person or a Car type of Object. Essentially, objects are merely key - value pairs, which means, everything we put inside an Object is named - the key - and by that name we can access the value.

The more specific we need an Object to be, the more we need to describe it for the interpreter. A Car is fairly generic, whereas a Lamborghini, much more speicific and awesome.

For everything we need our application to do, we build types of objects that can do specific things, and interacting together, these objects are our application.

© 2014-2015 Operation Spark

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
jfraboni edited this page Oct 24, 2014 · 2 revisions

Writing and Running Applications

A computer program, is a sequence of instructions, written to perform a specified task or tasks on a computer.

We write programs using a programming language, and a high level language like JavaScript allows us to express our ideas more easily because the syntax is more like the English language than older languages that were modeled on binary switches, combinations of zeros and ones. When we write programs, we describe objects by specifying their properties and defining their behaviours, that is, what they're made of and what they can do and how they interact with other objects. Then we create objects and get them to interact with each other - simple, no?

Like many languages, programs written in Javascript are executed in a special runtime environment or interpreter, or sometimes what is called an engine.

Similar to the way in which a person reads a book, a JavaScript interpreter reads the programs you've written line by line, holding objects in memory as they are introduced on each line. When you read a book, or someone tells you a story, you hold the characters and events that transpire in your memory, and once the characters are in your memory and they participate in events, the story begins to make sense and unfold.

Same thing with a computer program. There's some pre-scanning that happens though: for example, and very simply put, function definitions within the scope current object are hoisted - pulled up into memory - before the execution of statements, even though these functions may be defined later in your page of code. You might compare this to the way in which the director of a play will want to know all of the actors within a scene, even though they are not on stage from the beginning of the act.

The word runtime is used to describe the environment in which your application is run, and in the case of JavaScript, it is an intepreter of some variant that, at runtime, reads your source text - the code you've written - and then executes statements line by line. And when we're running the application, we say, "At runtime...". This is the case in variation for many languages, Java, Python, etc.

When we ask the interpreter to run our program, it looks at all the objects we've described, and line by line trys to make them interact with each other by reading our statements and evaluating the expressions we've written.

You can think of statements as stating something, sort of like sentences or even paragraphs, which can include expressions. And in JavaScript, we end statements with a semi-colon ;:

// a statement:varcount=0;// another statement, including an expression:varnameFirst="Jack",nameLast="Jones",fullName=nameFirst+' '+nameLast;console.log(fullName);// prints Jack Jones

These are both statements, they both state that the variables count, nameFirst and nameLast exist and are initialized with some values, but the second statement creates three variables in the same statement and includes an expression, fullName = nameFirst + ' ' + nameLast, whereas the first statement simply declares a single variable.

You can view expressions as a value first requiring evaluation, but that's open to interpretation. So, in the above example, the iterpreter had to evaluate the value of nameFirst, the value of a String literal " ", and the value of nameLast in order to concatenate them into a single String to become the value of fullName.

Everything in JavaScript is an Object, or can be treated as one, including primative types, like numbers and strings. An Object is the basic thing from which all other things are dirived. We can even create blank objects, think of them like empty containers, or a blob of clay which you can shape and define even while the program is runnning. Or before the program is running, you can define a type of Object, like a Person or a Car type of Object. Essentially, objects are merely key - value pairs, which means, everything we put inside an Object is named - the key - and by that name we can access the value.

The more specific we need an Object to be, the more we need to describe it for the interpreter. A Car is fairly generic, whereas a Lamborghini, much more speicific and awesome.

For everything we need our application to do, we build types of objects that can do specific things, and interacting together, these objects are our application.

© 2014-2015 Operation Spark

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
jfraboni edited this page Oct 24, 2014 · 2 revisions

Writing and Running Applications

A computer program, is a sequence of instructions, written to perform a specified task or tasks on a computer.

We write programs using a programming language, and a high level language like JavaScript allows us to express our ideas more easily because the syntax is more like the English language than older languages that were modeled on binary switches, combinations of zeros and ones. When we write programs, we describe objects by specifying their properties and defining their behaviours, that is, what they're made of and what they can do and how they interact with other objects. Then we create objects and get them to interact with each other - simple, no?

Like many languages, programs written in Javascript are executed in a special runtime environment or interpreter, or sometimes what is called an engine.

Similar to the way in which a person reads a book, a JavaScript interpreter reads the programs you've written line by line, holding objects in memory as they are introduced on each line. When you read a book, or someone tells you a story, you hold the characters and events that transpire in your memory, and once the characters are in your memory and they participate in events, the story begins to make sense and unfold.

Same thing with a computer program. There's some pre-scanning that happens though: for example, and very simply put, function definitions within the scope current object are hoisted - pulled up into memory - before the execution of statements, even though these functions may be defined later in your page of code. You might compare this to the way in which the director of a play will want to know all of the actors within a scene, even though they are not on stage from the beginning of the act.

The word runtime is used to describe the environment in which your application is run, and in the case of JavaScript, it is an intepreter of some variant that, at runtime, reads your source text - the code you've written - and then executes statements line by line. And when we're running the application, we say, "At runtime...". This is the case in variation for many languages, Java, Python, etc.

When we ask the interpreter to run our program, it looks at all the objects we've described, and line by line trys to make them interact with each other by reading our statements and evaluating the expressions we've written.

You can think of statements as stating something, sort of like sentences or even paragraphs, which can include expressions. And in JavaScript, we end statements with a semi-colon ;:

// a statement:varcount=0;// another statement, including an expression:varnameFirst="Jack",nameLast="Jones",fullName=nameFirst+' '+nameLast;console.log(fullName);// prints Jack Jones

These are both statements, they both state that the variables count, nameFirst and nameLast exist and are initialized with some values, but the second statement creates three variables in the same statement and includes an expression, fullName = nameFirst + ' ' + nameLast, whereas the first statement simply declares a single variable.

You can view expressions as a value first requiring evaluation, but that's open to interpretation. So, in the above example, the iterpreter had to evaluate the value of nameFirst, the value of a String literal " ", and the value of nameLast in order to concatenate them into a single String to become the value of fullName.

Everything in JavaScript is an Object, or can be treated as one, including primative types, like numbers and strings. An Object is the basic thing from which all other things are dirived. We can even create blank objects, think of them like empty containers, or a blob of clay which you can shape and define even while the program is runnning. Or before the program is running, you can define a type of Object, like a Person or a Car type of Object. Essentially, objects are merely key - value pairs, which means, everything we put inside an Object is named - the key - and by that name we can access the value.

The more specific we need an Object to be, the more we need to describe it for the interpreter. A Car is fairly generic, whereas a Lamborghini, much more speicific and awesome.

For everything we need our application to do, we build types of objects that can do specific things, and interacting together, these objects are our application.

© 2014-2015 Operation Spark

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
jfraboni edited this page Oct 24, 2014 · 2 revisions

Writing and Running Applications

A computer program, is a sequence of instructions, written to perform a specified task or tasks on a computer.

We write programs using a programming language, and a high level language like JavaScript allows us to express our ideas more easily because the syntax is more like the English language than older languages that were modeled on binary switches, combinations of zeros and ones. When we write programs, we describe objects by specifying their properties and defining their behaviours, that is, what they're made of and what they can do and how they interact with other objects. Then we create objects and get them to interact with each other - simple, no?

Like many languages, programs written in Javascript are executed in a special runtime environment or interpreter, or sometimes what is called an engine.

Similar to the way in which a person reads a book, a JavaScript interpreter reads the programs you've written line by line, holding objects in memory as they are introduced on each line. When you read a book, or someone tells you a story, you hold the characters and events that transpire in your memory, and once the characters are in your memory and they participate in events, the story begins to make sense and unfold.

Same thing with a computer program. There's some pre-scanning that happens though: for example, and very simply put, function definitions within the scope current object are hoisted - pulled up into memory - before the execution of statements, even though these functions may be defined later in your page of code. You might compare this to the way in which the director of a play will want to know all of the actors within a scene, even though they are not on stage from the beginning of the act.

The word runtime is used to describe the environment in which your application is run, and in the case of JavaScript, it is an intepreter of some variant that, at runtime, reads your source text - the code you've written - and then executes statements line by line. And when we're running the application, we say, "At runtime...". This is the case in variation for many languages, Java, Python, etc.

When we ask the interpreter to run our program, it looks at all the objects we've described, and line by line trys to make them interact with each other by reading our statements and evaluating the expressions we've written.

You can think of statements as stating something, sort of like sentences or even paragraphs, which can include expressions. And in JavaScript, we end statements with a semi-colon ;:

// a statement:varcount=0;// another statement, including an expression:varnameFirst="Jack",nameLast="Jones",fullName=nameFirst+' '+nameLast;console.log(fullName);// prints Jack Jones

These are both statements, they both state that the variables count, nameFirst and nameLast exist and are initialized with some values, but the second statement creates three variables in the same statement and includes an expression, fullName = nameFirst + ' ' + nameLast, whereas the first statement simply declares a single variable.

You can view expressions as a value first requiring evaluation, but that's open to interpretation. So, in the above example, the iterpreter had to evaluate the value of nameFirst, the value of a String literal " ", and the value of nameLast in order to concatenate them into a single String to become the value of fullName.

Everything in JavaScript is an Object, or can be treated as one, including primative types, like numbers and strings. An Object is the basic thing from which all other things are dirived. We can even create blank objects, think of them like empty containers, or a blob of clay which you can shape and define even while the program is runnning. Or before the program is running, you can define a type of Object, like a Person or a Car type of Object. Essentially, objects are merely key - value pairs, which means, everything we put inside an Object is named - the key - and by that name we can access the value.

The more specific we need an Object to be, the more we need to describe it for the interpreter. A Car is fairly generic, whereas a Lamborghini, much more speicific and awesome.

For everything we need our application to do, we build types of objects that can do specific things, and interacting together, these objects are our application.

© 2014-2015 Operation Spark

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
jfraboni edited this page Oct 24, 2014 · 2 revisions

Writing and Running Applications

A computer program, is a sequence of instructions, written to perform a specified task or tasks on a computer.

We write programs using a programming language, and a high level language like JavaScript allows us to express our ideas more easily because the syntax is more like the English language than older languages that were modeled on binary switches, combinations of zeros and ones. When we write programs, we describe objects by specifying their properties and defining their behaviours, that is, what they're made of and what they can do and how they interact with other objects. Then we create objects and get them to interact with each other - simple, no?

Like many languages, programs written in Javascript are executed in a special runtime environment or interpreter, or sometimes what is called an engine.

Similar to the way in which a person reads a book, a JavaScript interpreter reads the programs you've written line by line, holding objects in memory as they are introduced on each line. When you read a book, or someone tells you a story, you hold the characters and events that transpire in your memory, and once the characters are in your memory and they participate in events, the story begins to make sense and unfold.

Same thing with a computer program. There's some pre-scanning that happens though: for example, and very simply put, function definitions within the scope current object are hoisted - pulled up into memory - before the execution of statements, even though these functions may be defined later in your page of code. You might compare this to the way in which the director of a play will want to know all of the actors within a scene, even though they are not on stage from the beginning of the act.

The word runtime is used to describe the environment in which your application is run, and in the case of JavaScript, it is an intepreter of some variant that, at runtime, reads your source text - the code you've written - and then executes statements line by line. And when we're running the application, we say, "At runtime...". This is the case in variation for many languages, Java, Python, etc.

When we ask the interpreter to run our program, it looks at all the objects we've described, and line by line trys to make them interact with each other by reading our statements and evaluating the expressions we've written.

You can think of statements as stating something, sort of like sentences or even paragraphs, which can include expressions. And in JavaScript, we end statements with a semi-colon ;:

// a statement:varcount=0;// another statement, including an expression:varnameFirst="Jack",nameLast="Jones",fullName=nameFirst+' '+nameLast;console.log(fullName);// prints Jack Jones

These are both statements, they both state that the variables count, nameFirst and nameLast exist and are initialized with some values, but the second statement creates three variables in the same statement and includes an expression, fullName = nameFirst + ' ' + nameLast, whereas the first statement simply declares a single variable.

You can view expressions as a value first requiring evaluation, but that's open to interpretation. So, in the above example, the iterpreter had to evaluate the value of nameFirst, the value of a String literal " ", and the value of nameLast in order to concatenate them into a single String to become the value of fullName.

Everything in JavaScript is an Object, or can be treated as one, including primative types, like numbers and strings. An Object is the basic thing from which all other things are dirived. We can even create blank objects, think of them like empty containers, or a blob of clay which you can shape and define even while the program is runnning. Or before the program is running, you can define a type of Object, like a Person or a Car type of Object. Essentially, objects are merely key - value pairs, which means, everything we put inside an Object is named - the key - and by that name we can access the value.

The more specific we need an Object to be, the more we need to describe it for the interpreter. A Car is fairly generic, whereas a Lamborghini, much more speicific and awesome.

For everything we need our application to do, we build types of objects that can do specific things, and interacting together, these objects are our application.

© 2014-2015 Operation Spark

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
jfraboni edited this page Oct 24, 2014 · 2 revisions

Writing and Running Applications

A computer program, is a sequence of instructions, written to perform a specified task or tasks on a computer.

We write programs using a programming language, and a high level language like JavaScript allows us to express our ideas more easily because the syntax is more like the English language than older languages that were modeled on binary switches, combinations of zeros and ones. When we write programs, we describe objects by specifying their properties and defining their behaviours, that is, what they're made of and what they can do and how they interact with other objects. Then we create objects and get them to interact with each other - simple, no?

Like many languages, programs written in Javascript are executed in a special runtime environment or interpreter, or sometimes what is called an engine.

Similar to the way in which a person reads a book, a JavaScript interpreter reads the programs you've written line by line, holding objects in memory as they are introduced on each line. When you read a book, or someone tells you a story, you hold the characters and events that transpire in your memory, and once the characters are in your memory and they participate in events, the story begins to make sense and unfold.

Same thing with a computer program. There's some pre-scanning that happens though: for example, and very simply put, function definitions within the scope current object are hoisted - pulled up into memory - before the execution of statements, even though these functions may be defined later in your page of code. You might compare this to the way in which the director of a play will want to know all of the actors within a scene, even though they are not on stage from the beginning of the act.

The word runtime is used to describe the environment in which your application is run, and in the case of JavaScript, it is an intepreter of some variant that, at runtime, reads your source text - the code you've written - and then executes statements line by line. And when we're running the application, we say, "At runtime...". This is the case in variation for many languages, Java, Python, etc.

When we ask the interpreter to run our program, it looks at all the objects we've described, and line by line trys to make them interact with each other by reading our statements and evaluating the expressions we've written.

You can think of statements as stating something, sort of like sentences or even paragraphs, which can include expressions. And in JavaScript, we end statements with a semi-colon ;:

// a statement:varcount=0;// another statement, including an expression:varnameFirst="Jack",nameLast="Jones",fullName=nameFirst+' '+nameLast;console.log(fullName);// prints Jack Jones

These are both statements, they both state that the variables count, nameFirst and nameLast exist and are initialized with some values, but the second statement creates three variables in the same statement and includes an expression, fullName = nameFirst + ' ' + nameLast, whereas the first statement simply declares a single variable.

You can view expressions as a value first requiring evaluation, but that's open to interpretation. So, in the above example, the iterpreter had to evaluate the value of nameFirst, the value of a String literal " ", and the value of nameLast in order to concatenate them into a single String to become the value of fullName.

Everything in JavaScript is an Object, or can be treated as one, including primative types, like numbers and strings. An Object is the basic thing from which all other things are dirived. We can even create blank objects, think of them like empty containers, or a blob of clay which you can shape and define even while the program is runnning. Or before the program is running, you can define a type of Object, like a Person or a Car type of Object. Essentially, objects are merely key - value pairs, which means, everything we put inside an Object is named - the key - and by that name we can access the value.

The more specific we need an Object to be, the more we need to describe it for the interpreter. A Car is fairly generic, whereas a Lamborghini, much more speicific and awesome.

For everything we need our application to do, we build types of objects that can do specific things, and interacting together, these objects are our application.

© 2014-2015 Operation Spark

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
jfraboni edited this page Oct 24, 2014 · 2 revisions

Writing and Running Applications

A computer program, is a sequence of instructions, written to perform a specified task or tasks on a computer.

We write programs using a programming language, and a high level language like JavaScript allows us to express our ideas more easily because the syntax is more like the English language than older languages that were modeled on binary switches, combinations of zeros and ones. When we write programs, we describe objects by specifying their properties and defining their behaviours, that is, what they're made of and what they can do and how they interact with other objects. Then we create objects and get them to interact with each other - simple, no?

Like many languages, programs written in Javascript are executed in a special runtime environment or interpreter, or sometimes what is called an engine.

Similar to the way in which a person reads a book, a JavaScript interpreter reads the programs you've written line by line, holding objects in memory as they are introduced on each line. When you read a book, or someone tells you a story, you hold the characters and events that transpire in your memory, and once the characters are in your memory and they participate in events, the story begins to make sense and unfold.

Same thing with a computer program. There's some pre-scanning that happens though: for example, and very simply put, function definitions within the scope current object are hoisted - pulled up into memory - before the execution of statements, even though these functions may be defined later in your page of code. You might compare this to the way in which the director of a play will want to know all of the actors within a scene, even though they are not on stage from the beginning of the act.

The word runtime is used to describe the environment in which your application is run, and in the case of JavaScript, it is an intepreter of some variant that, at runtime, reads your source text - the code you've written - and then executes statements line by line. And when we're running the application, we say, "At runtime...". This is the case in variation for many languages, Java, Python, etc.

When we ask the interpreter to run our program, it looks at all the objects we've described, and line by line trys to make them interact with each other by reading our statements and evaluating the expressions we've written.

You can think of statements as stating something, sort of like sentences or even paragraphs, which can include expressions. And in JavaScript, we end statements with a semi-colon ;:

// a statement:varcount=0;// another statement, including an expression:varnameFirst="Jack",nameLast="Jones",fullName=nameFirst+' '+nameLast;console.log(fullName);// prints Jack Jones

These are both statements, they both state that the variables count, nameFirst and nameLast exist and are initialized with some values, but the second statement creates three variables in the same statement and includes an expression, fullName = nameFirst + ' ' + nameLast, whereas the first statement simply declares a single variable.

You can view expressions as a value first requiring evaluation, but that's open to interpretation. So, in the above example, the iterpreter had to evaluate the value of nameFirst, the value of a String literal " ", and the value of nameLast in order to concatenate them into a single String to become the value of fullName.

Everything in JavaScript is an Object, or can be treated as one, including primative types, like numbers and strings. An Object is the basic thing from which all other things are dirived. We can even create blank objects, think of them like empty containers, or a blob of clay which you can shape and define even while the program is runnning. Or before the program is running, you can define a type of Object, like a Person or a Car type of Object. Essentially, objects are merely key - value pairs, which means, everything we put inside an Object is named - the key - and by that name we can access the value.

The more specific we need an Object to be, the more we need to describe it for the interpreter. A Car is fairly generic, whereas a Lamborghini, much more speicific and awesome.

For everything we need our application to do, we build types of objects that can do specific things, and interacting together, these objects are our application.

© 2014-2015 Operation Spark

Clone this wiki locally