Vefforritun 1 kennd haustið 2024
[]
const list = [];array[0] nálgast fyrsta stak í index 0, array[1] annað stak í index 1 o.s.fr.length skilar fjölda staka í fylki, frá 0 til stærsta indexconst eru block scoped fastar sem banna endurskilgreiningu á grunngildi
constconst er ekki immutableconst
const list = [1, 2, 3];
list.length; // 3
list[100] = 1; // má þó skilgr sem const
list.length; // 101
list = ''; // TypeError, ný týpa
'foo'.length, Math.min()null og undefined. – dot notation['foo'] – bracket notationfunction köllum við það method
toUpperCase() er method á strengjum sem skilar streng í hástöfum, höfum fleiri methods á strengjumconst a = 'hello world';
a.length; // 11
a['length']; // 11
a.toUpperCase(); // "HELLO WORLD"
a['toUpperCase'](); // "HELLO WORLD"?!
array.join(s) – breytir fylki í streng með s á milliarray.push(item) – ýtir item aftast á fylkiarray.pop() – fjarlægir og skilar aftasta hlut í fylkiconcat, shift, slice, sort, splice o.fl.const list = [0, 1, 2];
list[0]; // 0
list.push('þrír'); // 4
list.join(', '); // '0, 1, 2, þrír'
list.pop(); // 'þrír'
{}, innan þess skilgreinum við eigindi hluts með heiti: gildi
gildi eru öll leyfileg gildiundefinedobject í Javaconst person = {
name: 'Jón Jónsson',
// óleyfilegt breytunafn
'home-address': 'Aðalgata 1',
age: 100,
registered: true,
// trailing comma
interests: ['foo', 'bar', 'baz', ],
};
const a = {};
a['1%-result']; // undefined
a.1%-result; // SyntaxError
const key = 'result';
a[key] = '10';
a[key]; // '10'
a.result; // '10'
delete er unary operator sem eyðir eigindi af hlutdeleteboolean sem segir til um hvort eigindi hafi verið eyttdelete a.result;
in er binary operator sem segir til um hvort eigindi sé á hlutbooleanundefined eða null er það samt sem áður enn þá tengt hlutnum og in skilar trueconst obj = { result: 1 };
obj.result; // 1
'result' in obj; // true
obj.info = '10'; // "foo"
obj['result-info'] = true; // true
delete obj.info; // true
'info' in obj; // false
obj; // { result: 1, result-info: true}
Object.keysObjectObject.assign(), Object.freeze(), Object.values() og fleiriconst data = { x: 1, y: 2, z: 3 };
Object.keys(data); // ['x', 'y', 'z']
Object.values(data); // [1, 2, 3]
Object.freeze(data);
delete data.x; // false
// afritum data yfir í result
const result = Object.assign({}, data);
const extra = { a: true, x: 9 };
// afritum data yfir í extra, yfirskrifar
Object.assign(extra, data);
array er object!Array.isArray()const a = [1, 2, 3];
typeof a; // "object"
Array.isArray(a); // true
true þá og því aðeins að það séu nákvæmlega sömu hlutirnir
const obj = { a: 1 };
obj === { a: 1 }; // false
const result = obj;
obj === result; // true
const data = { a: 1 };
obj === data; // false;
// sama gildir fyrir fylki
const list = [1, 2, 3];
const list2 = [1, 2, 3];
list === list2; // false
for lykkjur og haldið utan um index í fylkinufor of lykkjur leyfa okkur að sækja hvert stak í röð án bókhalds
const items = [1, 2, 3, 4, 5];
for (let i = 0; i < items.length; i++) {
items[i] *= 2;
}
items; // [2, 4, 6, 8, 10]
const items = [1, 2, 3, 4, 5];
for (const item of items) {
console.log(item);
}
1, 2, 3, 4, 5
... fyrir framan er það rest parameter
arguments hlut í föllum
arguments hlut en geta notað rest parameterfunction sum(x, y, ...rest) {
return x + y + rest.length;
}
sum(1, 2); // 3
sum(1, 2, 3, 4); // 5
function avg(...rest) {
let sum = 0;
for (const i of rest) {
sum += i;
}
return sum / rest.length;
}
avg(1, 2, 3, 4, 5, 6); // 3.5
... fyrir utan parameter í föllum kallast það spread operatorstring og array, ekki object, number og öðrum gildumconst list = [1, 2, 3];
console.log(...list); // 1 2 3
// sama og að hafa gert
console.log(1, 2, 3);
function sum(x, y, z) {
return x + y + z;
}
sum(...list); // 6
// sama og að hafa gert
sum(1, 2, 3);
// getum gert í bland við önnur argument
avg(1, ...list, 10); // 3.4
[1, ...list, 10]; // [1, 1, 2, 3, 10]
// afritum fylki
[...list]; // [1, 2, 3]
undefined ef ekkert gildi passar, ekki villuconst list = [1, 2, 3];
const [a, , b] = list;
console.log(a, b); // 1 3
const obj = { data: 1, result: 'hi' };
const { data, x, result } = obj;
console.log(data, x, result);
// 1 undefined 'hi'
[]functionconst a = '1';
const b = '2';
const c = { a, b }; // { a: "1", b: "2" };
const d = {
result: '10',
// eigindi úr segð
[`result${c.a}`]: '10',
};
d; // { result: "10", result1 : "10" }
const utils = {
// í staðinn fyrir sum: function (x, y)
sum(x, y) {
return x + y;
},
};
utils.sum(1, 2); // 3