Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Технологии разработки клиентских WEB-приложений на языке JavaScript. Учебное пособие
.pdf
31
new) Date;
JavaScript, Date
Date
13
70
new Date(2013, 13, 1) new
Date(2014, 1, 1), 2014-02-01
new Date(2013, 2, 1,
0, 70) new Date(2013, 2, 1, 1, 10)
2013-03-01T01:10:00.
Value
1 1970 00:00:00 UTC ( Unix).
DateString
Date.parse() (
IETF RFC 2822 [ ],
ISO8601 [ ]).
Year 0 99
1900 1999.
Month 0
11
Day
Hour
Minute
Second
Millisecond
Обработка текста
• String;
• RegExp.
String
Javascript
JavaScript
String,
String
String:

32
var val = new String(string);
String
con-
structor
String,
length
proto-
type
prototype
String
String.fromCha
rCode()
String.fromCod
ePoint()
String.raw()
let re1 = new RegExp("abc");
String -
String
8
-
9

33
let re2 = /abc/;
var str = "Visit W3Schools!";
var n = str.search("W3Schools");
var str = "Visit Microsoft!";
var res = str.replace("Microsoft", "W3Schools");
JavaScript
search () replace ().
search ()
replace ()
search ()
"W3schools"
replace ()
RegExp
-
\ n),

34
Структурированные данные
{
"squirrel": false,
"events": ["work", "touched tree", "pizza", "running"]
}
• ArrayBuffer;
• DataView;
• JSON.
-
JSON ( Jason), JavaScript Object Notation.
JavaScript.
JSON JavaScript
-
JSON.
JSON:
JavaScript JSON.stringify JSON.parse
JavaScript JSON.

35
let string = JSON.stringify({squirrel: false,
events: ["weekend"]});
console.log(string);
// {"squirrel":false,"events":["weekend"]}
console.log(JSON.parse(string).events);
// ["weekend"]
ArrayBuffer
const buffer = new ArrayBuffer(8);
const view = new Int32Array(buffer);
var littleEndian = (function() {
var buffer = new ArrayBuffer(2);
new DataView(buffer).setInt16(0, 256, true /* littleEndian */);
return new Int16Array(buffer)[0] === 256;
})();
console.log(littleEndian); // true or false
ArrayBuffer;
DataView,
ArrayBuffer () ArrayBuffer
Base64
8-
Int32Array,
-
- Endianness
DataView
JavaScript
64- , DataView
64-
getUint64 ()
Number.MAX_SAFE_INTEGER,

36
function getUint64(dataview, byteOffset, littleEndian) {
// split 64-bit number into two 32-bit (4-byte) parts
const left = dataview.getUint32(byteOffset, littleEndian);
const right = dataview.getUint32(byteOffset+4, littleEndian);
const combined = littleEndian? left + 2**32*right : 2**32*left + right;
if (!Number.isSafeInteger(combined))
console.warn(combined, 'exceeds MAX_SAFE_INTEGER. Precision may
be lost');
return combined;
}
64-
const BigInt = window.BigInt, bigThirtyTwo = BigInt(32), bigZero = Big-
Int(0);
function getUint64BigInt(dataview, byteOffset, littleEndian) {
const left = BigInt(dataview.getUint32(byteOffset|0, !!littleEndian)>>>0);
const right = BigInt(dataview.getUint32((byteOffset|0) + 4|0, !!littleEndi-
an)>>>0);
return littleEndian ? (right<<bigThirtyTwo)|left :
(left<<bigThirtyTwo)|right;
}
BigInt. BigInts
BigInts
32- JavaScript, -
Практическое задание
1
10
2
Date,
14:23:11)
0 10,
18:7:3
18:07:03.

37
3
const myArray = ['a', 'b'];
const callback = (x) => console.log(x);
myArray.forEach(callback);
// Output:
// 'a'
// 'b'
JSON JavaScript
4
'ahb acb aeb aeeb adcb axeb'.
ahb, acb, aeb 'a',
'b'.
Асинхронность
-
-
JavaScript. -
-
JavaScript
callback , Promises
(async-await).
Callback функции
Callback -

38
readFile(),
readFile('some-file.txt', {encoding: 'utf8'},
(error, data) => {
if (error) {
assert.fail(error);
return;
}
assert.equal(data, 'The content of some-file.txt\n');
});
addAsync(3, 4)
.then(result => { // success
assert.equal(result, 7);
})
.catch(error => { // failure
assert.fail(error);
});
,
Использование функции на основе Promise
Promise
Promise
JavaScript.
then,
addAsync (),
Promise
promise 2 callback
• .then callback,
addAsync;
• .catch callback,
callback.
addAsync
Promise Promise

39
Promise
function addAsync(x, y) {
return new Promise(
(resolve, reject) => { // (A)
if (x === undefined || y === undefined) {
reject(new Error('Must provide two parameters'));
} else {
resolve(x + y);
}
});
}
async function fetchJsonAsync(url) {
try {
const request = await fetch(url); // async
const text = await request.text(); // async
return JSON.parse(text); // sync
}
catch (error) {
assert.fail(error);
}
}
-
addAsync, 2
x y.
addAsync Promise.
A).
• resolve );
• reject
Async функции
async
Promises. async
Promises:

40
function fetchJsonViaPromises(url) {
return fetch(url) // async
.then(request => request.text()) // async
.then(text => JSON.parse(text)) // sync
.catch(error => {
assert.fail(error);
});
}
fetchJsonAsync():
fetchJsonAsync('http://example.com/person.json')
.then(obj => {
assert.deepEqual(obj, {
first: 'Jane',
last: 'Doe',
});
});
// async
async function func1() {}
// async
const func2 = async function () {};
// async
const func3 = async () => {};
// async
const obj = { async m() {} };
• async async;
• async
Promise.
• async Promise
fetchJsonAsync (), fetchJsonViaPromises ()
async
Promise.
async
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
