JavaScript Deep Dives with Wolfram. Since 2015
Inclusive, Test-Driven, Spec-Focused, Collaborative.
Most Popular
2024
#77
Object.groupBy
c't <webdev>
JavaScript the Language: Diving Deep in a Test-Driven Way
#76
Proxy
- Are you mutating the original object?
- Can a proxy setter/getter be async?
hosted by
Check24Erika-Mann-Straße 66, München, Germany
#75
async generators
- use an empty async generator
- an async generator resolve to an object with properties
- does it wait until it has the next data item?
- simulate slow data using setTimeout
#74
Reflect
- what does define/deleteProperty do?
- we can not unfreeze a frozen object using Reflect
- Trying to unfreeze an object
#73
closures
- how far can we nest a closure?
- `var` vs. `let` in a closure?
- dynamically created closures
- block `{ }` has the same rules like closures?
#jscc24
JSCraftCamp 2024 - TDD Session
- Evaluate the ratio of request successful/failing (ignoring unknown and missing response statuses)
- with one request only
#72
`this`
- `function() {}` vs. `() => {}`
- `this.this`???
#71
All about functions
- Order of execution of nested functions
- Function names
- Can we write a getter for fn.bind()?
- Can we use `this` inside any function?
#70
Prototype
- creating a bare object give it prototype
- is there a minimum prototype
- clarifications
- the prototype
#69
Generators
- take a string and yield every character
- Can I return from within a generator?
async+await
- What happens to errors inside async functions?
- Can we use an async function for building a "delay"?
- Can it block the code execution?
2023
Static Initialization Blocks
- in what order are blocks executed?
- order of constructor and static blocks
JavaScript Class (and Prototypes)
- static fields
- anonymous class
Private Class Feature(s)
- Are private properties really private?
Bitwise Shift Operators
- Explore left shift bitwise operators
SoCraTesAT
Bitwise Operators
- How can we do multiplication using bitwise operations?
Reflect
Prototype Object
- Do functions have a prototype?
- Create own object with a custom prototype
How to read the spec
Map, Set, WeakMap, ...
- Fundamentals
- set.add(1) is the same as set.add("1")??
- What happens when we add 0 and -0?
- Garbage collection for Weak* ...
try-finally (without catch)
- Use try+finally without catch?
- execution order of try+finally
- What happens when a block returns?
- What happens when a block throws?
2022
try-catch
- is the catch statement required?
- how does eval work? (a little bit)
Async Generators
- what happens with a value that has been consumed?
- whats a diff between yield and return?
- is getting the next item async or the item itself?
RegExp (Regular Expression) Objects (ECMAScript Spec Chapter 22.2)
- Ways to create regexps (objects, literal, ...), (how) do they differ?
- RegExp groups
- What methods are on a regexp?
Async Generators
- What happens when you mix yielded types (static value and promise)?
- for await - how does it work? what kind of syntactic sugar is it?
JavaScript Generators
- what is a generator/iterator
How to read the spec
JavaScript arrays
- How can an array get bigger?
- poke holes into an array
JavaScript Types
- How can it be stricter (typed)?
- what can be boolean? truthy, falsy, ...
flatMap(), flat(), ...
- flat()
- flat() with a string as parameter
BigInt
- BigInt basics
- Number.MAX_*
DataView
- buffer is (im)mutable?
- endianness
- 4 bytes
- de/encoding using ArrayBuffer/DataView? base64, etc.
2021
Fundamental Objects - Object, Number, String, Boolean, ...
- `new Object` vs `Object()`
- Function object
- Boolean constructor
- `Error`
prototype
- what in JS has (no) prototype?
- type coercion ...
- class is syntactic sugar?
Operators (%, /, *, ...)
- modulo operator
- comma operator
- execution stops when there is a throw
at() - function
- does `at()` work on strings
- at() in arrays
Temporal API
- Temporal API
- Calculate with dates
Operators: ==, ===, +=, !==, !=, >, &&, ||, |, &, ^ ...
- true+false - how operators work?
- can unary operators create an infinite sequence?
- void ???
- `-undefined` and `+new Date` vs `0+new Date`
WeakMap
JavaScript `Promises.finally('part 3')`
JavaScript Promises Part 2 (continue from last time)
JavaScript Promises
- Promises - How to collect more than one promise (in a loop?)
- What is Promise.any?
- How does Promise.prototype.finally work?
JavaScript Modules
- JS Modules - files vs. modules
2020
Top Level Await
- Tests
- Top level await - How to test it?
Tagged Templates
- Tagged templates - what the function`s signature
- What does it return?
Optional ?. chaining (this time for real)
- Optional chaining (`?.` operator)
- Whats the default return value if an element is undefined/null? (without the operator)
- What about newlines, spaces?
- How does it work with (async, generators) functions?
Dot operator and optionally optional chaining
- dot operator syntax and primitive types
ES6: Reflect - (REMOTE)
- Create an object using `Reflect`
- Override properties using Reflect
- Object vs. Reflect
- Work with a frozen object
async+await
Scope
- nested scope + hoisting
- lexical vs dynamic scoping
2019
Generator - again, again and again
- Creating a generator
- Calling a generator
Understand Promises - by writing tests
- Promises basics
- Promise.all
Advanced Promises - clock-in kata
Dynamic Imports
- How to use dynamic imports
- Relative and absolute paths
- Global scope and dir
- Nested imports
ES10 features
Proxy Object
- What can we proxy?
- How does the handler work
- an async setter
- helper, learning, trying out
prototype
- How it works???
- Learning about ...
- What can we do with the prototype?
import() as a function
Async Iterations (for-await-of)
- for-of with async+await
- having `await` inside `forEach`
- iterate over list of promises
The Global Object
- Access the global object
- Inspect the Global Object
- Delete from Global Object
2018
Labels
- dynamic labels? (can use variables for labels?)
Proxies
- Learning about the `new Proxy()`
- What can we do with it?
Errors
- types of errors
- props and methods of Error
Type coercion
Generators (maybe also async)
Map, Set, WeakMap
Functions
ES6 function (again!!!!) - we need to learn more
ES6 - Template literals
- tagged template strings, are an advanced form of template strings
- the function can access each part of the template
- the 1st parameter - receives only the pure strings of the template string
- the 2nd and following parameters - contain the values of the processed substitution
- a template string, is wrapped in ` (backticks) instead of \' or "
- by default, behaves like a normal string
- can evaluate variables, which are wrapped in "${" and "}"
- can evaluate any expression, wrapped inside "${...}"
- on tagged template strings you can use the `raw` property like so `s.raw`
- `String.raw` as a static function
- template string, can contain multiline content
- and expressions inside work too
2017
ES6 - Proxies
- Proxy, for arrays
- proxy functions
SharedArrayBuffer
- web worker
- SharedArrayBuffer
(function(){Function, function, () => {}, ...})()
Generators
- Transmitting a file of 10 chars, with initial package size 1 char
- we set the package size
Classes, Prototypes a look under the hood
async and await
2016
ES6 Promises kata
Mob developing a Promise-kata
ECMAScript 6 - Destructuring
hosted by
CupoNationDingolfinger Str. 15, München, Germany
2015
ECMAScript 6 - Proxies
ECMAScript 6 - Generators