JavaScript Basics Quiz

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

What is the primary purpose of JavaScript in web development?

  • To manage database queries
  • To style web pages
  • To add dynamic behavior to static content (correct)
  • To create static web pages

JavaScript is closely related to Java.

False (B)

Name one type of primitive data in JavaScript.

Number

The reserved keyword __________ is used to declare a local variable in JavaScript.

<p>var</p> Signup and view all the answers

Match the following JavaScript types with their characteristics:

<p>Number = Can represent integers and floating-point values String = Used to represent text Boolean = Represents a true or false value Null = Indicates no value or object</p> Signup and view all the answers

Which of the following can be used to include an external JavaScript file in an HTML document?

&lt;script src='file.js'>&lt;/script> (B) Signup and view all the answers

The REPL console included in Chrome is used for evaluating JavaScript code.

<p>True (A)</p> Signup and view all the answers

What will be the value of isIndex after executing opinion.indexOf('is')?

<p>8 (D)</p> Signup and view all the answers

Strings in JavaScript are mutable.

<p>False (B)</p> Signup and view all the answers

What is the difference between null and undefined in JavaScript?

<p>Null is a value representing 'no value', while undefined means a variable has been declared but not assigned a value.</p> Signup and view all the answers

In JavaScript, the keyword ______ is used to create instances of wrapper objects.

<p>new</p> Signup and view all the answers

Match the following terms with their descriptions:

<p>Null = No value assigned to a variable Undefined = Variable declared but not assigned a value Falsy values = Values that evaluate to false in a Boolean context Truthy values = Values that evaluate to true in a Boolean context</p> Signup and view all the answers

What will numbers.length return after executing numbers = [1, 2, 3]?

<p>3 (A)</p> Signup and view all the answers

The use of backslash in a string is for using special characters.

<p>True (A)</p> Signup and view all the answers

What does the concat method do in JavaScript strings?

<p>The <code>concat</code> method merges two or more strings into one.</p> Signup and view all the answers

With JavaScript arrays, you can use the ______ method to add an element at the end of the array.

<p>push</p> Signup and view all the answers

Which of the following is NOT a version of SVG?

<p>SVG 1.5 (A)</p> Signup and view all the answers

SVG documents can exist without a root element.

<p>False (B)</p> Signup and view all the answers

Name one fundamental type of graphical object that can be used within SVG drawings.

<p>Primitive vector shapes</p> Signup and view all the answers

A distance measurement in SVG is given as a number along with a unit called __________.

<p>length</p> Signup and view all the answers

Match the following SVG attributes with their descriptions:

<p>fill = Specifications of the type of paint used when filling a graphic element stroke = Specifications of the type of paint used when stroking a graphic element transform = Used to specify a list of coordinate system transformations color = A CSS2 compatible specification for a color in the sRGB color space</p> Signup and view all the answers

What is produced by adding both black and white pigments?

<p>Tones (B)</p> Signup and view all the answers

A monitor uses the subtractive color model.

<p>False (B)</p> Signup and view all the answers

What are the three primary colors in the RGB color model?

<p>Red, Green, Blue</p> Signup and view all the answers

When red and green light are added together, they produce ______.

<p>yellow</p> Signup and view all the answers

Match the primary colors of the RGB color model with their combinations:

<p>Red = Green + Blue = Cyan Green = Red + Blue = Magenta Blue = Red + Green = Yellow</p> Signup and view all the answers

Which of the following pairs are complementary colors?

<p>Green and Magenta (B)</p> Signup and view all the answers

The color gamut refers to the range of colors produced by a specific method.

<p>True (A)</p> Signup and view all the answers

What does the term 'color space' refer to?

<p>An abstract mathematical model that describes how colors can be represented.</p> Signup and view all the answers

In the subtractive color model, blue is mixed with ______ to create the color cyan.

<p>green</p> Signup and view all the answers

In the RGB color model, how many primary colors are sufficient for most purposes?

<p>3 (B)</p> Signup and view all the answers

What is the main advantage of Extended Huffman Coding?

<p>It allows grouping several symbols into one codeword. (D)</p> Signup and view all the answers

In LZW coding, the dictionary starts with a fixed size of 2l0.

<p>True (A)</p> Signup and view all the answers

What does LZW stand for?

<p>Lempel-Ziv-Welch</p> Signup and view all the answers

The average code length for an information source S is strictly less than _____ + 1.

<p>η</p> Signup and view all the answers

Match the following coding techniques with their descriptions:

<p>Extended Huffman Coding = Groups symbols to reduce codeword count LZW = Uses fixed-length codewords for variable-length strings Dictionary-based Coding = Dynamically builds a dictionary during encoding Compression = Reduces data size for storage or transmission</p> Signup and view all the answers

When does the dictionary in LZW need to be flushed?

<p>When l maximum is reached and fully occupied (D)</p> Signup and view all the answers

The size of the new alphabet in Extended Huffman Coding increases as symbols are grouped.

<p>True (A)</p> Signup and view all the answers

What does LZW encoder and decoder do during data processing?

<p>Builds a dynamic dictionary</p> Signup and view all the answers

In LZW coding, the code length l is maintained within the range of [l0, _____].

<p>lmax</p> Signup and view all the answers

Which of the following best describes the nature of the symbols grouped in Extended Huffman Coding?

<p>They must occur frequently together. (A)</p> Signup and view all the answers

Signup and view all the answers

Signup and view all the answers

Flashcards

What is JavaScript?

A programming language used to add interactivity and dynamic functionality to websites. It allows you to create features like interactive elements, animations, data manipulation, and more.

What does JavaScript allow you to do?

A feature that allows you to interact with HTML elements like buttons, forms, and images. It enables you to respond to user actions and control the behavior of the web page.

What are JavaScript APIs?

A set of pre-defined functions and features that allow JavaScript to interact with the web browser and its environment. For example, the DOM API enables manipulation of HTML elements, while the canvas API allows drawing on the screen.

What are JavaScript variables?

Stores data within a program, allowing you to refer to and modify it. Examples include variables like count, valleyQuote, and precision, which can hold numbers, strings, or boolean values.

Signup and view all the flashcards

What are JavaScript constants?

A special type of variable whose value cannot be changed after it's assigned. It's declared using the const keyword. For example, const DEN_MAX = 5.

Signup and view all the flashcards

What is variable scope in JavaScript?

The scope of a variable determines where it can be accessed within a program. Global variables are accessible everywhere, whereas block-scoped variables are only accessible within the specific block of code they're defined in.

Signup and view all the flashcards

What is the var keyword used for?

A reserved keyword used to declare a local variable or object. For example, var count = 42 declares a local variable named count and assigns it the value 42.

Signup and view all the flashcards

What is a JavaScript string?

A variable that can hold a sequence of characters. In JavaScript, strings are immutable, meaning that any modification creates a new string.

Signup and view all the flashcards

Global variables in Javascript

A variable is declared as global if you omit the var keyword. This makes the variable accessible from anywhere in the script.

Signup and view all the flashcards

What is the typeof operator?

The typeof operator is used to determine the data type of a variable.

Signup and view all the flashcards

What is the new keyword used for?

The new keyword is used to create instances of wrapper objects, which provide methods for working with primitive data types. For example, you can use new String() to create a String object from a string literal.

Signup and view all the flashcards

What are escape characters?

Escape characters are used to represent special characters within strings. Common escape sequences include \n (new line), \t (tab), and \\ (backslash).

Signup and view all the flashcards

What is the internal representation of a JavaScript string?

Each character in a JavaScript string is represented by a 16-bit unsigned integer, effectively making a string a sequence of numbers.

Signup and view all the flashcards

How can you declare arrays in Javascript?

Arrays in JavaScript can be created using two methods: an array literal (using square brackets []) or the new Array() constructor.

Signup and view all the flashcards

How are JavaScript arrays indexed?

JavaScript arrays are zero-indexed, meaning the first element is at index 0, the second at index 1, and so on. Their length is dynamically determined by the number of elements.

Signup and view all the flashcards

Are javascript arrays objects?

Arrays in JavaScript are objects. They can have properties and methods. The length property gives you the total number of elements in the array.

Signup and view all the flashcards

Lightening a color

The process of adding white to a color to make it lighter.

Signup and view all the flashcards

Tones

Colors created by mixing both black and white pigments.

Signup and view all the flashcards

Additive Color Model

A system that explains how colors are created and perceived, based on light.

Signup and view all the flashcards

Additive Color Model example

The Additive Color Model uses light to create colors.

Signup and view all the flashcards

Subtractive Color Model

A system that explains how colors are created and perceived, based on pigments.

Signup and view all the flashcards

Subtractive Color Model example

The Subtractive Color Model uses pigments to create colors.

Signup and view all the flashcards

Complementary Colors

Colors that are opposite on the color wheel and create white when combined.

Signup and view all the flashcards

Color Model

A method for explaining the properties and behavior of color in a specific context.

Signup and view all the flashcards

Primary Colors

The colors that are used as the basis for creating other colors within a color model.

Signup and view all the flashcards

Color Gamut

The range of colors that can be produced by a specific color model or method.

Signup and view all the flashcards

What is the svg element?

The root element of an SVG document, it's responsible for defining the root of the SVG namespace, specifying the viewport for the SVG drawing, and containing all other SVG elements.

Signup and view all the flashcards

What is SVG?

SVG stands for Scalable Vector Graphics. It's a vector-based language used to define and describe two-dimensional graphics, shapes, and text that can be rendered on the web and in other applications.

Signup and view all the flashcards

What are the basic types of graphical objects supported by SVG?

SVG supports three fundamental types of graphical objects: drawings, vector text, and external bitmap images.

Signup and view all the flashcards

What is the requirement for SVG documents?

SVG documents are required to have a root element, which is the svg element. This element acts as the main container for all other SVG elements within the document. It defines the SVG namespace, specifies the viewport for the drawing, and serves as the starting point for parsing and rendering the SVG content.

Signup and view all the flashcards

What does 'drawings' refer to in the context of SVG?

Lines, circles, squares, rectangles, paths, ellipses, polygons, and more. These shapes can be manipulated using various attributes to control their size, color, position, and other properties.

Signup and view all the flashcards

Average Code Length

The average code length for an information source S is strictly less than η + 1.

Signup and view all the flashcards

Extended Huffman Coding

A technique in data compression where multiple symbols are grouped together and assigned a single codeword.

Signup and view all the flashcards

Extended Alphabet Size

In Extended Huffman Coding, if k symbols are grouped together, the new alphabet S(k) has nk symbols.

Signup and view all the flashcards

Lempel–Ziv–Welch (LZW)

A data compression technique that uses fixed-length codewords to represent variable-length strings of symbols.

Signup and view all the flashcards

Dynamic Dictionary in LZW

The LZW encoder and decoder build the same dictionary dynamically while processing data.

Signup and view all the flashcards

Codewords for Repeated Strings

LZW places repeated strings in a dictionary, assigning them a code instead of encoding them individually.

Signup and view all the flashcards

Code Length in LZW

In LZW, the code length is dynamically adjusted between a minimum (l0) and a maximum (lmax) based on the dictionary's size.

Signup and view all the flashcards

Increasing Code Length in LZW

When the dictionary is full in LZW, the code length is increased by 1 until it reaches the maximum limit (lmax).

Signup and view all the flashcards

Dictionary Management in LZW

If the maximum code length (lmax) is reached and the dictionary is full, existing entries may be removed to make space.

Signup and view all the flashcards

Least Recently Used (LRU) Entries

A strategy commonly used in LZW to remove the least recently used entries from the dictionary when it's full.

Signup and view all the flashcards

Study Notes

JavaScript Language - The Basics

  • HTML & CSS are used for static web content
  • JavaScript allows for dynamic web content that changes based on user input
  • Web browsers have an engine to generate dynamic content using JavaScript
  • JavaScript can be used to:
    • Interact with HTML and CSS content of a document and respond to events
    • Use standard JavaScript APIs defined in W3C standard
    • Use numerous APIs in addition to DOM and selector APIs (multimedia, drawing, animation, geolocation, webcam, etc)
    • Work with remote data from a remote HTTP web server

Deploying JavaScript in HTML

  • Include JavaScript in HTML files (external script using <script> element with src attribute)
  • External scripts can be located on a web server
  • Embedded scripts can be included in HTML documents using <script> tags within HTML
  • A browser console (like Chrome’s REPL– read evaluate print loop) can be used to evaluate JavaScript code
  • JavaScript files (*.js) can be run in a runtime environment such as Node.js.
  • <noscript> tags are useful for situations where scripts cannot or have been disabled.

JavaScript - Overview & Definitions

  • Derived from the ECMAScript standard
  • Originally designed to run on Netscape Navigator
  • Not related to Java
  • A JavaScript interpreter is embedded in web browsers to add dynamic behavior to static web content
  • Scripts can run when HTML documents load, accompany forms to process input, be triggered by events, and dynamically create multimedia resources.
  • JavaScript types are divided into primitive types and object types

JavaScript Primitive Types

  • Numbers (5, 1.24, 1.1e5) are stored using floating-point notation. Includes Infinity, -Infinity, and NaN (Not a Number).
  • Strings ("Hello")
  • Booleans (true, false)
  • Null (null)
  • Undefined (undefined)
  • Boolean, if, delete, var, function, etc. are reserved words in JavaScript.
  • Primitive data types do not have associated methods or behaviors.
  • Some primitive types have wrapper objects (Boolean, Number, String).

JavaScript Variables & Constants

  • Variables can begin with "$", "_", "a"–"z", or "A"–"Z".
  • A variable can hold a number, string, or Boolean.
  • Variables have global and block scopes.
  • var keyword is for declaring local variables or objects (var keyword omitted declares global variables).
  • typeof operator is useful for knowing the type of a variable depending on its value.
  • The new keyword is used to create instances of wrapper objects

JavaScript Strings

  • JavaScript strings are series of 16-bit unsigned integers representing characters.
  • Escape characters use a backslash (\).
  • Strings are immutable - manipulation results in a new string.
  • String methods can be used for string manipulation (e.g., indexOf(), substring()).

String Methods

  • indexOf(): Searches for a substring, returning its position or -1 if not found.
  • substring(): Extracts a substring from a given starting index to an ending index (exclusive)

JavaScript Booleans

  • Any value can be used as a Boolean in JavaScript when used in logical operators.
  • Falsy values: null, undefined, 0, NaN, ""
  • Truthy values: "true", 6...

JavaScript Null & Undefined

  • Null: a value that can be assigned to represent "no value".
  • Undefined: a variable was declared but no value has been assigned.

Arrays

  • Arrays may be declared using array literal notation (e.g., [1, 2, 3]) or using array constructor notation (e.g., new Array(1, 2, 3)).
  • Arrays are zero-indexed. Array indices are used to access array elements.
  • Arrays grow dynamically by adding elements using push().
  • Elements can be removed using pop().

Array Indices

  • Use a zero-based indexing scheme.
  • length property = largest integer index in the array.
  • arrayVar[index] adds an element at that index if index >= arrayVar.length.
  • Creating a mapping from the index to the element if index < 0.

Objects

  • JavaScript objects store key-value pairs.
  • Access values using myobject.property or myobject['property'].
  • Key-value pairs can be added after initial declaration.

Error Objects

  • Error objects are created when an exception is thrown.
  • Properties contain information about the error (e.g., Message, Name).
  • Custom error objects can be made (e.g., throw new Error("Only positive values are permitted")).

Conditionals and Loops

  • if statement for conditional execution.
  • else statement for alternative execution.
  • for loop for repeating execution.
  • while loop for repetitive execution.
  • JavaScript first tries to convert strings to numbers.

JS Operators and Expressions

  • Unary operators: typeof, ++, -- (opposite of a number)
  • Binary operators: +, -, /, *, % (modulo)
  • Concatenation operators: +, +=
  • === operator compares both type and value (strict equality)

Comparing Objects

  • Objects are only equal if the variables are aliases (refer to the same object).

Declaring and Using Functions

  • Functions use the function keyword.
  • Functions can have parameters in parentheses.
  • Functions often return a value using the return statement.
  • Default return value is undefined.
  • Functions can also be declared as expressions that can be stored in variables (rez = functionName(parameters)).

Creating Custom Objects

  • The new keyword creates objects.

Prototypes

  • Object instances inherit properties and methods from their prototype.
  • Prototypes of built-in objects exist.
  • Scripts can add or override custom properties and methods to the prototype, which applies to current working instances.
  • Modifying an object’s prototype alters its associated template (how it behaves in future instances).

Debugging JavaScript

  • Write messages in the browser's developer console.
  • Use functions such as addXToThePage() within the Web page to display messages in the browser console.

Asynchronous JavaScript (1)

  • JavaScript programs in a browser are typically event-driven.
  • Asynchronous means that your function does not block any other tasks or functions, but rather it runs concurrently.

Asynchronous JavaScript (2)

  • No fundamental features in JavaScript are asynchronous by default.
  • JavaScript provides powerful tools for working with asynchronous operations. Tools include promises, async/await, and for/await

Asynchronous JavaScript – Common Methods

  • Using Callbacks;
  • Using Promises;
  • Using async and await;
  • Using Asynchronous Iteration.

Asynchronous Programming with Callbacks

  • Derived from functional programming.
  • Used for adding interactivity to HTML.
  • Functions (callback) are passed to other functions containing logic that execute that callback function when a particular condition is met.
  • May include arguments based on a condition or event.
  • Common callback-based asynchronous programming includes events, timers, and network events (such as XMLHttpRequest class).

DOM Events & Event Flow

  • Events result from user actions or from the browser.
  • Event handlers are functions that execute when an event occurs,
  • They are named with on prefix (e.g., onclick or onchange)
  • Event flow involves capturing, target, and bubbling phase (ordering of how events are handled).

DOM Source Events

  • How to access and use events from the source element
  • General events (target, type, preventDefault())
  • Keyboard events (key, keyCode, altKey, ctrlKey, shiftKey)
  • Mouse events (pageX, pageY, button, altKey, ctrlKey, shiftKey)
  • Standard events (e.g., load, DOMContentLoaded, keydown, keypress, keyup, mouse events)

Assigning DOM Event Handlers

  • Handling events through HTML attribute notation. Example: <element EventAttribute=FunctionName()></element>.
  • Defining event handlers within JavaScript, using the property approach.
  • Example: btn.onclick = function(){}
  • Handling multiple event handlers via addEventListener() and removeEventListener().
  • Example: element.addEventListener(‘type’, function, phase).

Intrinsic Events in Web App

  • Intrinsic events are those that are implemented directly as methods of the element

Colours - Colour Models

  • Colour models in computer graphic programs for defining colours used by computer. The specific method of defining how colours should function is determined by the particular software used.

Properties of Light

  • Light is a narrow band of the electromagnetic spectrum.
  • The electromagnetic spectrum includes various types from gamma rays to radio waves.
  • Red light has a frequency of around 3.8x1014 Hz; Violet is from 7.9x1014 Hz.
  • The spectrum of light source describes the distribution of light intensities according to wavelengths. It refers to how the light is related or transmitted and the colour produced.

Colour Fundamentals

  • Luminance: measures the strength of light in a particular colour.
  • Hue: refers to the nuance (red, green, blue) and the basic colour
  • Saturation: is the intensity or purity of colour
  • Brightness: a psychological measure of the perceived intensity; the relative degree of black mixed in with a particular hue.

Humans Only Perceive Relative Brightness

  • Humans perceive brightness according to the relative amount of blackness mixed in the image.

Colour Properties

  • Psychological colours characteristics: â–  Dominant frequency (hue, colour), â–  Brightness = total light energy â–  Purity (saturation)
  • Chromaticity – collectively refers to purity and dominant frequency.
  • Colours can be created by artificial or natural light
  • Chemical pigments may be used to produce or change colours
  • Shades, tints and tones â–  Intuitively color concepts– Shades, tints and tones (using white and black to modify hues)

Colour Systems

  • Additive (RGB) - Used for devices that emit light (TV sets, monitors, projectors, lighted displays, cameras, scanners)
  • Subtractive (CMYK) used for devices that absorb light (prints, paper-based, and stained glass)
  • The addition of colors in RGB can produce white; in CMYK it is black.

Complementary Colours

  • Additive complementary colours â–ª Blue is one-third of the red, green, and a bit of blue. â–ª Yellow is two-thirds red, and green, with a bit of blue.
  • Subtractive complementary colours â–  Orange is between red and yellow â– â–  Green-cyan <=> magenta-red

Colour Models

  • Method for explaining behaviour or properties of colours in particular contexts
  • Combining light sources with different dominant frequencies produces new colours with varying intensities.
  • Different types of colour systems use different sets of colours that are essential for applications such as printers.
  • Different applications (e.g. graphic design programs) have different types of colour gamut, based on available primary colours.
  • Colour space describes the range of different colours that can be produced using a particular method.

RGB Colour Model

  • The tristimulus theory of vision states that human eyes perceive colour through the stimulation of red, green and blue cone cells of the retina.
  • The RGB colour model can be visually represented by a unit cube.

RGB Colour Model (cont.)

  • The 3 primary colours – red, green, and blue – are used to generate colours on monitors.
  • An increase in intensity of each primary colour results in a wide range of different colours.

RGB Colour Model (cont.)

  • Using 8 bits per channel allows for a range of colours (from 0-255) for each colour component (red, green, and blue); to produce a total number of 2563 =16.77 million colours
  • Pixel values are defined by intensities (0 to 255) for red, green, and blue.

CMYK Colour Model

  • Cyan, Magenta, Yellow, Black
  • Used in printing
  • A subtractive color model
  • Colour is produced by mixing the primary colours cyan, magenta, and yellow with black pigment.
  • Printing pictures using colours is based on the reflectance of light by pigments (subtractive process).

CMYK Colour Model (cont.)

  • Black Pigment was introduced to reduce drying time of inks.
  • Spot colours can be fluorescent inks or lacquered colours.
  • CMYK model-used by various devices (and often results in images with a different color-representation-when compared to an RGB image)

CMYK Colour Model (cont.)

  • Transformations between RGB and CMY color spaces use mathematical matrices.
  • RGB to CMY transformations include matrices and are used to reproduce colors from an RGB image to a CMY image.

HSB Colour Model

  • Hue, Saturation, Brightness (also known as HSV) and HSL (Hue, Saturation, and Lightness); are
  • Cylindrical-coordinate representations of colours. Used for better intuitive understanding (as opposed to RGB) and to be perceptually relevant
  • Useful in programs where users interact directly with defining colours (e.g programs for graphic design)

HSB Colour Model (cont.)

  • Hue: measured as the colour location on the colour wheel (0° - 360°);
  • Saturation: the intensity or purity of a colour. Measured as a percentage from 0% to 100%.
  • Brightness: the lightness or darkness of a colour. Measured as a percentage from 0% (black) to 100% (white).

HSB Colour Model

  • Hue - the most notable quality of a colour
  • Saturation - high saturation means rich and full color; low means dull, grayish
  • Brightness - lightness vs darkness; tints and shades are related terms for lightness and darkness of colours.

HSB Colour Model (cont.)

  • HSB is useful for selection of colors in programs that involve user interaction.
  • It is based on intuitive ideas rather than sets of primary colours
  • It is derived from relating HSB parameters to the direction of the RGB cube.

Transformation RGB->HSB

  • Method for transforming RGB color space to HSB color space. The transformation is non-linear, and uses minimum and maximum values for transformations.

HLS Colour Model

  • hue, lightness, saturation
  • another color space model that uses cylindrical-coordinate representation of colours. Provides intuitive and perceptually relevant color definitions.
  • YIQ-used in the NTSC analog video signal
  • Y - luminance
  • I and Q - chrominance (hue and saturation)
  • YIQ format converts a RGB color image into a new representation to allow older analog TV's to represent the image.
  • Matrices can be used to convert between RGB and YIQ colour spaces.

Lab Colour Model

  • Uses human colour perception to define colours.
  • Includes luminance (L; 0-100), and two color components: green-red (a) and blue-yellow (b).
  • Device-independent model, showing color as it appears, rather than how it is created (e.g. additive or subtractive).

Grayscale Colour Model

  • A grayscale model generates only shades of gray (from black to white)
  • An image consisting entirely of shades of grey has a fixed number of shades determined by the bit depth per pixel.

Comparison

  • Compare types of colour systems from different images in terms of properties.

Colour Selection and Applications

  • Graphic packages for color selection usually include tools such as sliders and color wheels.
  • Guidelines for color design may involve considerations such as colour pairs that may result in eye fatigue.

CSS Colour Property

  • CSS (Cascading Style Sheets) syntax can specify colors in multiple ways.
  • Options include named colors (red or green), hexadecimal values (#RRGGBB or #RGB), RGB values (rgb(R, G, B)), and HSL values (hsl(h, s, l)).
  • Packages and tools often offer visual representations or utilities to aid in selection.

Colour Wheel

  • Circular visual representation of colours using a chromatic relationship.
  • Used to represent and visualize colour relationships in graphic design.
  • Primary colours include red, yellow and blue.
  • Secondary colours include a combination of two primary colours (e.g. red and yellow result in orange)
  • Tertiary colours result from a mix of primary and secondary colours

Colour Conversion

  • The need to convert colours in graphic design or presentation tools (e.g. converting from RGB to grayscale or CMYK).
  • The process often involves some data loss in quality of color details.

Canvas Element

  • HTML5 feature that provides a 2-D bitmap canvas for graphics or animation.
  • Used for rendering different types of shapes (lines, rectangles, ellipses, arcs, curves) and visual effects
  • Functions for drawing operations (drawImage(), getImageData(), putImageData())
  • Several drawing styles that can be manipulated (colour, drawing width, shadows, alpha channel and advanced drawing modes)

Drawing Principles

  • Graphic Operations in HTML5 use a graphic context that controls shape, text, and image properties.
  • Drawing operations can be grouped for efficient optimization (path mode vs. immediate mode) when performing drawing on the canvas.
  • The Graphic Processing Unit (GPU) of graphics hardware can handle processing for functions that allow parallelism
  • Buffers can be created, filled, drawn and altered using canvas element API.

Drawing with Canvas Elements

  • Using the Canvas 2D Context API (http://www.w3.org/TR/2dcontext2) to configure the canvas element.
  • Use methods to get the graphical context element reference (id of canvas to obtain element)

Summary of Path Mode Principles

  • Path mode drawing groups drawing operations into a buffer for efficient processing (e.g. drawing multiple figures at once).

Dynamically Processing Shapes

  • Direct drawing involves rendering shapes directly on the canvas using functions (like fillRect(), strokeRect(), clearRect());
  • Drawing using path involves creating a path using a sequence of functions; followed by using functions (like fill() or stroke()) to draw operations on the path.

Drawing and Moving Functions

  • moveTo(x, y): Changes the current drawing position.
  • lineTo(x, y): Draws a line.
  • rect(x, y, w, h): Draws a filled rectangle.
  • arc(x, y, radius, startAngle, endAngle, anticlockwise): Adds an arc
  • arcTo(xctrl, yctrl, xPos, yPos, radius):
  • quadraticCurveTo(cp1x, cp1y, epx, epy): Adds a quadratic curve.
  • bezierCurveTo(cp1x,cp1y,cp2x, cp2y, epx, epy): Adds a Bézier curve

Drawing Text

  • fillText(text, x, y): Draws filled text
  • strokeText(text, x, y) draws an outline of text
  • font property describes text size and font
  • shadowOffsetX, shadowOffsetY, shadowBlur, shadowColor for effects.

Canvas Attributes

  • fillStyle / strokeStyle : colour used for drawing
  • lineWidth: thickness of lines.
  • lineCap: style of line endings (butt, round, square)
  • lineJoin: style of line corners (bevel, round, miter)
  • font: text size and font.
  • textAlign: text position relative to the x-coordinate (left, right, center)
  • textBaseline: text position relative to the y-coordinate (top, hanging, middle, alphabetic, bottom).
  • save() / restore(): saving and restoring contexts.

Drawing Bézier Curves

  • Bézier curves are smooth curves that are determined by a sequence of points.
  • D3JS supports drawing Bézier curves of various orders (quadratic (one control point), cubic (2 control points)) using functions.

2D Transformations - Canvas

  • translate(x, y) - translates (moves) the coordinate system.
  • rotate(angle) - rotates the coordinate system.
  • scale(x, y) - scales the coordinate system.
  • Transformations affect all elements drawn after the transform method is called.

2D Transformations

  • translation: Moves the origin (0, 0) of the coordinate space
  • rotation: Rotates the coordinate space by a given angle
  • scale: Scales the coordinate space by a given factor

rotation

  • Rotation-Rotates the coordinate system. It is defined by the angle and the center of rotation.

Scaling/Zoom

  • scale(x-factor, y-factor) scales the drawing canvas by a ratio

Drawing Images

  • Motivation: Using images together with 2D drawing functions.
  • Image data can be obtained using getImageData() to then work with the pixels of the image, or putImageData() to place the data into a canvas. Note: getImageData() requires a web server in some cases for security reasons.

ImageData Interface

  • ImageData objects are used for representing rectangular areas of a canvas. The parameters provided define the area of interest in the canvas (using coordinates).
  • ImageData functions use pixel coordinates (and sizes)

Drawing, Resizing and Cropping Images

  • drawImage(imageData, x, y) : draws an existing image at the given coordinates
  • drawImage(image, x, y, width, height) draws, and scales the image
  • drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh) : draws an area of an image

Accessing Pixel Values

  • getImageData(x, y, width, height) extracts pixels from a canvas.

Animation

  • Computer animation involves creating illusions of movement using technology.
  • Includes 2D and 3D animation.
  • 2D animators utilize bitmap graphics to generate/edit images.
  • 3D animators utilize geometric/multimedia primitives to model and manipulate objects to generate images.

Animation Functions

  • Animation is used to provide wonder or surprise
  • animation is useful to represent things more easily and effectively
  • animation is used to provide entertainment

Animation Techniques

  • Keyframe animation
  • Motion capture animation
  • Procedural animation
  • Color change animation
  • Show/hide/toggle animation

Keyframe Animation

  • Keyframes are used in animation as a sort of checkpoints (images) that help determine how transitions should occur between frames.
  • Several methods of interpolation exist to transform between keyframes and provide smooth transition.

Motion Capture Animation

  • capturing movements and using the data for animation
  • Capture movements in 3D space to represent the movement of a character
  • More realistic than other types of animation; secondary movements can also be captured to produce more realistic animation

Procedural Animation

  • Animation based on set of rules and initial conditions
  • Used in natural phenomena simulations

The 12 Basic Principles of Animation

  • Set of rules to achieve consistent and beautiful animation.
  • Several rules for techniques in animation (e.g., Squash and Stretch, Anticipation, Staging)

Squash and Stretch

  • used to impart that objects such as living things have a sense of weight and flexibility to drawn objects
  • it involves emphasizing motion/impact by exaggerating the deformations of an object as if it were a pliable material
  • it must be remembered that although objects may distort like rubber, the volume of the object must be retained throughout the operation.

Anticipation

  • A technique that prepares an audience for action, and helps make an action seem more natural

Staging

  • A technique to focus attention and enhance understanding of a scene using camera viewpoint, framing and character positioning

Straight Ahead Action & Pose to Pose Animation

  • Straight Ahead: Draws frames in sequence to create spontaneous motion
  • Pose to Pose: Creates strong poses (keyframes) first, and then adds in-between frames.

Follow Through & Overlapping Action

  • Follow Through: parts of an object continue to move after the main action has ended to impart a sense of weight & flexibility to animations
  • Overlapping Actions: involves motion occurring simultaneously with the main action

Slow In & Slow Out

  • Slow in / slow out or ease in / ease out: used to create a more natural or realistic feel to animations.
  • It involves starting and finishing an action slowly to enhance how the motion appears.

Arc

  • Arc motion creates a more natural motion in animation.
  • The motion follows a curved or arc-like path.

Secondary Action

  • secondary actions are minor actions or movements that enhance the main action
  • it is not independent of the primary action, but rather a result or an enhancement

Timing

  • Timing refers to the speed and duration of an action in animation.
  • The timing of an action will contribute to emotional response & impact.

Exaggeration

  • Exaggeration: â– used to enhance and increase the clarity of emotions and actions, â–  often used for exaggerated characteristics or poses

Solid Drawing

  • Solid drawing: â–  Used to generate animated characters with weight, character, and emotion, â–  Involves proper drawing of characters â–  Often used for generating images or objects with greater sense of depth, balance, and realism

Appeal

  • The appeal is what makes a character sympathetic to an audience (e.g. through flaws and unique characteristics).
  • It's what makes the animation appealing (and often relatable).

CSS Animation

  • Uses the @keyframes rule for defining animations.
  • animation-name, duration, delay, iteration-count, direction, timing-function, fill-mode

Animations Using JavaScript

  • Procedural animation is used to improve the animation of single objects.

Procedural Animation - One Animated Object

  • Using setInterval to implement animation based on changes in HTML or CSS to animate objects

Procedural Animation – Several Simultaneous Animations

  • Uses requestAnimationFrame() for multiple, simultaneous animations that are smoother than setInterval-based animations. It is more efficient in terms of CPU and memory usage.

Procedural Animation (cont.)

  • Animation functions (e.g. animate) can use parameters for defining the duration of the animation, the calculation for the timing (using a function) and what should be drawn in different stages of the simulation.

Asynchronous JavaScript (2)

  • JavaScript programs in a web browser are usually event-driven
  • JavaScript-based servers typically wait on incoming client requests.
  • Fundamental JavaScript commands are not usually asynchronous. However, promises, async/await, and for/await allow asynchronous operations to occur in JavaScript.

Asynchronous JavaScript – Common Methods

  • Using Callbacks
  • Using Promises
  • Using async and await
  • Using Asynchronous Itertaion

Asynchronous Programming with Callbacks

  • Derived from functional programming
  • Used to add interactivity in HTML
  • Function (callback) gets passed to another function and then executes afterward
  • Common: events, timers, external network events

Events and Event Handlers

  • Listener determine if an element should act on an event
  • Handler is a function that executes when the event occurs

JavaScript Timing Events / Timers

  • Used to run some code after a certain amount of time has elapsed.
  • The window object lets calls occur at specified time intervals that are often used to perform timing events.

Promises

  • A Promise object is a representation of an asynchronous computation.
  • A callback function returns when a Promise value is ready.

Promises Based Fetch API

  • A promise-based API.
  • The fetch() API allows for processing, error handling, and asynchronous tasks in a chain using .then()and .catch().

Drag-and-Drop API

  • Drag & drop operations across windows and applications
  • It relies on DOM (document object model) for data
  • A dataTransferobject is part of the event, and is used to handle string data and MIME data type.

Draggability

  • Images, links and text are often pre-configured and draggable.

Fundamentals of Digital Audio

  • Sound's importance in multimedia
  • Types of sound in the context of multimedia

Sound Fundamentals

  • Sound is created by vibration of matter.
  • Involves a sound source, transmitting medium and a receiver.
  • Sounds can be classified as periodic wave formats (e.g. musical instruments) and noise (e.g. random sounds).
  • Characterized by frequency and amplitude.

Sound Wave Charactersitics

Frequency; Amplitude

Range of Human Hearing

Anatomy of a Sound Wave

Converting Analog Sound to Digital Audio

  • Analog sound is continuous (e.g. microphone signal).
  • Converting it to digital sound requires conversion and digitization (sampling & quantization).

Phases of Analog Audio Digitizing Process

  • Input: Acquiring analog signal.
  • Anti-aliasing: Filters high frequencies before sampling
  • Sampling: capturing the signal at regular intervals
  • Quantization: Rounding or allocating samples numeric values in the code
  • Storage/Transmission: Storing the digital data.

Analog to Digital Converter (ADC)

  • Converts analogue signals to digital signals
  • Analog signals have continuous values
  • digital signals have discrete values

Sampling Process

  • Sampling involves extracting samples at a constant frequency from a continuous analog signal

Digital Sampling Frequency

  • Specifies a rate for sampling of a continuous analog signal

Quantization

  • Used to assign numbers to amplitude, based on available numeric values in the code.
  • Determines the quality resolution

Storing Audio in Files

  • WAV (.wav): For storing uncompressed audio of high quality (lossless).
  • AIFF (.aiff): For storing high quality (lossless) audio.
  • MP3 (.mp3): Uses MPEG layer 3 codec, good for web and is efficient for storing audio.
  • Ogg vorbis (.ogg): An open source format well suited for web and often used for gaming.
  • Real Audio (.ram): a format well suited for streaming in real-time (requires special player)

Factors Affecting Digital Audio Quality

  • Sample Rate (frequency of sampling),
  • Bit Rate (or Bit Depth); (vertical resolution and describes how many bits are used to describe a sample)
  • Channel (number of sound channels: e.g. mono/stereo)
  • Sample size

Sample Size

  • Number of bits (8 bit, 16 bit or 24 bit) per sample
  • Used for audio data; greater sample size results in higher quality

Audio Software Terms

  • Waveform – a graph representing the analog signal.
  • Clip – a small piece of audio
  • Track/Channel – an area that plays audio content

Audio Software Terms (Cont.)

  • Channel – refers to mono (single audio channel used for reproduction) or stereo (two channels)

Sound Compression

  • Reducing audio file size.
  • Lossy and lossless codecs used for different purposes (e.g mp3 is lossy; used for web), while other codecs (such as WAV) are lossless

MIDI (Musical Instrument Digital Interface)

  • MIDI is a standard that allows music instruments to connect, and transfer commands to each other; these include notes, volumes and instruments, rather than transmitting sound data.
  • MIDI files have smaller file size.
  • MIDI files are not capable of storing natural sounds.

MIDI Audio File

  • MIDI files: contain sequenced commands
  • These include commands like note, instrument and volume as a form of coded instructions for a device

Audio File Formats

  • Wave files (.wav) are relatively uncompressed
  • MPEG Layer-3 files (.mp3) are compressed, reducing file size.
  • Other formats include formats like ogg and wma for more specialized settings and reduced file sizes

Audio File Formats (cont)

  • WAV – a common, uncompressed audio format commonly used in programs such as Adobe Audition, and used on Windows PCs.
  • MP3 - a popular, compressed audio file format; reduces file size when compared to .wav files but the quality will be reduced.
  • Real Audio (.ra, .ram, .rm) – Proprietary format that is suitable for streaming audio over a network in real-time.

Streaming Audio

  • Streaming audio occurs by sending data continuously to the client so that there is instant access and playback,
  • it avoids the problem of long downloads and waiting for entire files of data before being able to listen

What is Streaming?

  • Streaming involves sending data to a user continuously with data being stored in a buffer
  • The buffer usually stores the current data being viewed by the user, as well as other data that are near the current point being viewed.

Data Visualization - An Introduction

  • Data visualization involves converting data into visual representations to improve and ease the understanding of the data
  • D3.js – a JavaScript-based framework for handling and performing complex tasks/operations related to data visualization. The framework offers a rich set of functions and can be used for generating interactive visualizations.

D3.js Overview

  • A JavaScript framework for handling sophisticated data visualization tasks
  • It is data driven, rather than generating new data representation, and provides high interactivity
  • It provides a set of functions for managing DOM (document object model), to build, construct and update the view in response to changes in data

Why do we use D3?

  • D3 uses existing web standards
  • it is future-proofed for use with existing web tools
  • Has a lower entry barrier because data is easily manipulated using familiar web tools and functions

Data Visualization with D3.js

  • D3.js facilitates data visualizations, ranging (e.g.) from basic charts, hierarchical layouts, networks to maps.

Core Functions | Selections

  • Selections are an atomic unit in D3 to select elements based on criteria (e.g. CSS classes, IDs, etc.)
  • Selections can be used to alter elements via attributes, properties and styles.

Core Functions | Selections

  • D3 selections have 3 categories of information (styles, attributes, properties) that influence behaviour/appearance of elements

Core Functions | Selection.append

  • D3 provides append functions to add new elements to the DOM

Mapping data to elements

  • Data in array/object formats can be mapped.
  • Useful for generating dynamic visuals in response to data changes (e.g. enter, update, or exit).

Thinking with Data-Elements Joins

  • .enter(): used to figure out what has changed in the dataset
  • .update(): assigns data items to visual elements
  • .exit(): deletes items that are no longer displayed in datasets.

A D3 example

  • Example code illustrating use of D3 methods to create/manipulate/alter circle elements. D3 methods operate on selections to compute joins (e.g. enter, update, and exit) to produce results.

Working with external data

  • D3 uses asynchronous methods to work with external data
  • This involves using the .csv() and .json functions in asynchronous processes.

Scales

  • Scales are used to map data to visual elements.
  • Different types of scales (Ordinal scale maps a discrete domain to a discrete range)
  • Quantitative scale maps a continuous domain to a continuous range (e.g. d3.scaleLinear())

Ordinal scales

  • Used to map a discrete range (e.g. a list of strings) to a discrete set of values. Often, this is used to give visual representation in a data visualization, rather than numeric values

Quantitative scales

  • Scales that map continuous numerical values to a continuous visual range.
  • Useful for numerical data (e.g. d3.scaleLinear(), d3.scaleSqrt(), d3.scaleLog())

Line (and Area) Generators

  • Used to create lines or shapes

Further Samples

  • Includes links/references to other sources with D3.js examples and sample code. 

Data Persistence

  • Persisting information on a web application.

Persisting Information with Cookies

  • How cookies are used to track user information
  • Cookies are tied to particular domains and cannot be accessed by other domains.

Workers and Messaging

  • The need for thread based processing.

Worker's Purpose

  • Workers provide a way to run concurrent tasks outside the main browser thread.
  • A WorkerGlobalScope global object object exists along with the self keyword in workers.

When to create Workers?

  • Use Worker when working with computationally intensive tasks or in applications where responsiveness is required. Avoid use of Worker for trivial, non-intensive tasks.

Types of Workers

  • Dedicated Workers,
  • Shared Workers, and
  • Service Workers

Worker API

  • Worker object: how workers are created and access the environment from JavaScript
  • WorkerGlobalScope: is the global object for a JavaScript Worker; it resembles the window object in a typical JavaScript environment but has more limited properties.
  • self keyword can be used in place of window.

Worker Object — Properties & Methods

  • onerror: Assigns an event handler, and receives error events
  • onmessage: Assigns an event handler, and receives message or other types of events

WorkerGlobalScope Properties & Methods

  • Various properties and methods are available (e.g., navigator, location, `performance

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

JavaScript Tutorial PDF

More Like This

JavaScript Fundamentals Quiz
3 questions
JavaScript Fundamentals Quiz
10 questions
JavaScript Fundamentals
10 questions

JavaScript Fundamentals

PatientButtercup avatar
PatientButtercup
JavaScript Course - Fundamentals Part 1
44 questions
Use Quizgecko on...
Browser
Browser