mirror of https://github.com/01-edu/public.git
10 changed files with 100 additions and 150 deletions
@ -1,9 +0,0 @@ |
|||||||
export const tests = [] |
|
||||||
const t = (f) => tests.push(f) |
|
||||||
|
|
||||||
t(() => Array.isArray(arr)) // arr is declared and is an array
|
|
||||||
t(({ eq }) => eq(arr[0], 4)) // arr first element is 4
|
|
||||||
t(({ eq }) => eq(arr[1], '2')) // arr second element is "2"
|
|
||||||
t(({ eq }) => eq(arr.length, 2)) // arr length is 2
|
|
||||||
|
|
||||||
Object.freeze(tests) |
|
@ -0,0 +1,75 @@ |
|||||||
|
export const tests = [] |
||||||
|
const t = (f) => tests.push(f) |
||||||
|
|
||||||
|
// escapeStr
|
||||||
|
// is declared and of type string
|
||||||
|
t(() => typeof escapeStr === 'string') |
||||||
|
// should include the character '
|
||||||
|
t(() => escapeStr.includes("'")) |
||||||
|
// should include the character "
|
||||||
|
t(() => escapeStr.includes('"')) |
||||||
|
// should include the character `
|
||||||
|
t(() => escapeStr.includes('`')) |
||||||
|
// should include the character /
|
||||||
|
t(() => escapeStr.includes('/')) |
||||||
|
// should include the character \
|
||||||
|
t(() => escapeStr.includes('\\')) |
||||||
|
|
||||||
|
// arr
|
||||||
|
t(() => Array.isArray(arr)) // arr is declared and is an array
|
||||||
|
t(({ eq }) => eq(arr[0], 4)) // arr first element is 4
|
||||||
|
t(({ eq }) => eq(arr[1], '2')) // arr second element is "2"
|
||||||
|
t(({ eq }) => eq(arr.length, 2)) // arr length is 2
|
||||||
|
|
||||||
|
// obj
|
||||||
|
// obj is declared and of type object
|
||||||
|
t(() => obj.constructor === Object) |
||||||
|
// obj is constant and can not be re-assigned
|
||||||
|
t(({ fail }) => obj && fail(() => (obj = 10))) |
||||||
|
// obj.str is of type string
|
||||||
|
t(() => typeof obj.str === 'string') |
||||||
|
// obj.num is of type number
|
||||||
|
t(() => typeof obj.num === 'number') |
||||||
|
// obj.bool is of type boolean
|
||||||
|
t(() => typeof obj.bool === 'boolean') |
||||||
|
// obj.undef is of type undefined
|
||||||
|
t(() => 'undef' in obj && typeof obj.undef === 'undefined') |
||||||
|
|
||||||
|
// nested
|
||||||
|
const cantEdit = (fn) => { |
||||||
|
try { |
||||||
|
fn() |
||||||
|
} catch (err) { |
||||||
|
return true |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
t(() => nested.constructor === Object) |
||||||
|
|
||||||
|
// nested is constant and can not be re-assigned
|
||||||
|
t(({ fail }) => nested && fail(() => (nested = 10))) |
||||||
|
|
||||||
|
t(() => nested.obj.constructor === Object) |
||||||
|
t(() => typeof nested.obj.str === 'string') |
||||||
|
t(() => typeof nested.obj.num === 'number') |
||||||
|
t(() => typeof nested.obj.bool === 'boolean') |
||||||
|
|
||||||
|
t(() => Array.isArray(nested.arr)) |
||||||
|
t(() => nested.arr[0] === 4) |
||||||
|
t(() => nested.arr[1] === undefined) |
||||||
|
t(() => nested.arr[2] === '2') |
||||||
|
t(() => nested.arr.length === 3) |
||||||
|
|
||||||
|
// nested is frozen and can not be changed
|
||||||
|
t(() => cantEdit(() => (nested.obj = 5))) |
||||||
|
t(() => nested.obj !== 5) |
||||||
|
|
||||||
|
// nested.obj is also frozen and can not be changed
|
||||||
|
t(() => cantEdit(() => (nested.obj.update = 5))) |
||||||
|
t(() => nested.obj.update === undefined) |
||||||
|
|
||||||
|
// nested.arr is not frozen and can be changed
|
||||||
|
t(() => cantEdit(() => nested.arr.push('hot stuff'))) |
||||||
|
t(() => nested.arr.length === 3) |
||||||
|
|
||||||
|
Object.freeze(tests) |
@ -1,22 +0,0 @@ |
|||||||
export const tests = [] |
|
||||||
const t = (f) => tests.push(f) |
|
||||||
|
|
||||||
// escapeStr is declared and of type string
|
|
||||||
t(() => typeof escapeStr === 'string') |
|
||||||
|
|
||||||
// escapeStr should include the character '
|
|
||||||
t(() => escapeStr.includes("'")) |
|
||||||
|
|
||||||
// escapeStr should include the character "
|
|
||||||
t(() => escapeStr.includes('"')) |
|
||||||
|
|
||||||
// escapeStr should include the character `
|
|
||||||
t(() => escapeStr.includes('`')) |
|
||||||
|
|
||||||
// escapeStr should include the character /
|
|
||||||
t(() => escapeStr.includes('/')) |
|
||||||
|
|
||||||
// escapeStr should include the character \
|
|
||||||
t(() => escapeStr.includes('\\')) |
|
||||||
|
|
||||||
Object.freeze(tests) |
|
@ -1,39 +0,0 @@ |
|||||||
export const tests = [] |
|
||||||
const t = (f) => tests.push(f) |
|
||||||
const cantEdit = (fn) => { |
|
||||||
try { |
|
||||||
fn() |
|
||||||
} catch (err) { |
|
||||||
return true |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
t(() => nested.constructor === Object) |
|
||||||
|
|
||||||
// nested is constant and can not be re-assigned
|
|
||||||
t(({ fail }) => nested && fail(() => (nested = 10))) |
|
||||||
|
|
||||||
t(() => nested.obj.constructor === Object) |
|
||||||
t(() => typeof nested.obj.str === 'string') |
|
||||||
t(() => typeof nested.obj.num === 'number') |
|
||||||
t(() => typeof nested.obj.bool === 'boolean') |
|
||||||
|
|
||||||
t(() => Array.isArray(nested.arr)) |
|
||||||
t(() => nested.arr[0] === 4) |
|
||||||
t(() => nested.arr[1] === undefined) |
|
||||||
t(() => nested.arr[2] === '2') |
|
||||||
t(() => nested.arr.length === 3) |
|
||||||
|
|
||||||
// nested is frozen and can not be changed
|
|
||||||
t(() => cantEdit(() => (nested.obj = 5))) |
|
||||||
t(() => nested.obj !== 5) |
|
||||||
|
|
||||||
// nested.obj is also frozen and can not be changed
|
|
||||||
t(() => cantEdit(() => (nested.obj.update = 5))) |
|
||||||
t(() => nested.obj.update === undefined) |
|
||||||
|
|
||||||
// nested.arr is not frozen and can be changed
|
|
||||||
t(() => cantEdit(() => nested.arr.push('hot stuff'))) |
|
||||||
t(() => nested.arr.length === 3) |
|
||||||
|
|
||||||
Object.freeze(tests) |
|
@ -1,22 +0,0 @@ |
|||||||
export const tests = [] |
|
||||||
const t = (f) => tests.push(f) |
|
||||||
|
|
||||||
// obj is declared and of type object
|
|
||||||
t(() => obj.constructor === Object) |
|
||||||
|
|
||||||
// obj is constant and can not be re-assigned
|
|
||||||
t(({ fail }) => obj && fail(() => (obj = 10))) |
|
||||||
|
|
||||||
// obj.str is of type string
|
|
||||||
t(() => typeof obj.str === 'string') |
|
||||||
|
|
||||||
// obj.num is of type number
|
|
||||||
t(() => typeof obj.num === 'number') |
|
||||||
|
|
||||||
// obj.bool is of type boolean
|
|
||||||
t(() => typeof obj.bool === 'boolean') |
|
||||||
|
|
||||||
// obj.undef is of type undefined
|
|
||||||
t(() => 'undef' in obj && typeof obj.undef === 'undefined') |
|
||||||
|
|
||||||
Object.freeze(tests) |
|
@ -1,11 +0,0 @@ |
|||||||
## Arr |
|
||||||
|
|
||||||
### Instructions |
|
||||||
|
|
||||||
Create a constant variable named `arr` that is an array |
|
||||||
containing the values 4 and '2' |
|
||||||
|
|
||||||
|
|
||||||
### Notions |
|
||||||
|
|
||||||
- [nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) |
|
@ -0,0 +1,25 @@ |
|||||||
|
## Declarations |
||||||
|
|
||||||
|
### Instructions |
||||||
|
|
||||||
|
Create the following variables: |
||||||
|
|
||||||
|
- `escapeStr`, that contains the following specials characters: \`, `\`, `/`, `"`, `'` |
||||||
|
- `arr` that is an array containing the values 4 and '2' |
||||||
|
- `obj` that is an object containing a property for each primitives: |
||||||
|
- `str` for `String` |
||||||
|
- `num` for `Number` |
||||||
|
- `bool` for `Boolean` |
||||||
|
- `undef` for `undefined` |
||||||
|
- `nested` that contains |
||||||
|
- arr: an array of the 3 values: 4, undefined, '2' |
||||||
|
- obj: an object with 3 property (str, num & bool) |
||||||
|
|
||||||
|
`nested` and `obj` must be frozen to prevent changes from them. |
||||||
|
|
||||||
|
### Notions |
||||||
|
|
||||||
|
- Primitive and Operators |
||||||
|
- Variables |
||||||
|
- [nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) |
||||||
|
- [devdocs.io/javascript/global_objects/object/freeze](https://devdocs.io/javascript/global_objects/object/freeze) |
@ -1,17 +0,0 @@ |
|||||||
## Escape Str |
|
||||||
|
|
||||||
### Instructions |
|
||||||
|
|
||||||
Create a constant variable named `escapeStr` that contains |
|
||||||
the following specials characters: |
|
||||||
- ` |
|
||||||
- \ |
|
||||||
- / |
|
||||||
- " |
|
||||||
- ' |
|
||||||
|
|
||||||
|
|
||||||
### Notions |
|
||||||
|
|
||||||
- Primitive and Operators |
|
||||||
- Variables |
|
@ -1,15 +0,0 @@ |
|||||||
## Nested |
|
||||||
|
|
||||||
### Instructions |
|
||||||
|
|
||||||
Create a `nested` constant variable that contains |
|
||||||
- arr: an array of the 3 values: 4, undefined, '2' |
|
||||||
- obj: an object with 3 property (str, num & bool) |
|
||||||
|
|
||||||
`nested` and `obj` must be frozen to prevent changes from them. |
|
||||||
|
|
||||||
|
|
||||||
### Notions |
|
||||||
|
|
||||||
- [nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) |
|
||||||
- [devdocs.io/javascript/global_objects/object/freeze](https://devdocs.io/javascript/global_objects/object/freeze) |
|
@ -1,15 +0,0 @@ |
|||||||
## Obj |
|
||||||
|
|
||||||
### Instructions |
|
||||||
|
|
||||||
Create a constant variable named `obj` that is an object |
|
||||||
containing a property for each primitives: |
|
||||||
- `str` for `String` |
|
||||||
- `num` for `Number` |
|
||||||
- `bool` for `Boolean` |
|
||||||
- `undef` for `undefined` |
|
||||||
|
|
||||||
|
|
||||||
### Notions |
|
||||||
|
|
||||||
- [nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) |
|
Loading…
Reference in new issue