JavaScript : ES 2016からES 2019へのすべて
26286 ワード
こんにちは、私はAlberto Montalesi、完全なスタック自習開発者です.JavaScriptチュートリアルとチュートリアルをinspiredwebdev.com 他の開発者を刺激し、彼らが望むキャリアを構築する.
この記事は私の本の抜粋ですComplete Guide to Modern JavaScript そして、それはES 2016、ES 2017、ES 2018、ES 2019の新しい追加をカバーして、当初私のブログに掲示されましたinspiredWebDev .
記事の最後には、すべてをまとめたカンニングペーパーをダウンロードするリンクを見つけるでしょう.
ES 2016で新しいすべて
ES 2016は2つの新機能だけを導入しました 指数演算子
組み合わせ
最初の値は、検索する要素で、2番目の要素はインデックスです.
指数演算子
ES 2016に先立って、次のようにしたでしょう.
ES 2017文字列パディング
ES 2017は、我々がここで見るつもりである多くのクールな新機能を導入しました.
文字列パディング
最後に、文字列にパディングを追加することができます
それは起こりました
次の例を見てください.
右揃える
パッドにカスタム値を追加する
パッドとして空白を加えるだけではなく、文字列と数字の両方を渡すことができます.
ここでは、2つ以上のオブジェクトにアクセスする方法があります.
返される属性は
関数パラメータリストとコールにおける後のコンマ
これは構文へのわずかな変更です.今、オブジェクトを書くとき、最後の1つであるかどうかにかかわらず、各々のパラメタの後に後のコンマを残すことができます.
あなたがそれを置かないならば、それはどんなエラーも投げません、しかし、それがあなたの同僚またはチームメンバーの人生をより簡単にするように、それは従うことはより良い習慣です.
共有メモリと
メソッドの例は以下の通りです: 追加/サブ および/またはXOR ロード/ストア アトミックは
の例を見てみましょう
配列から特定の値を取得するには
と同じ
私たちはその後
非同期で待つ
Keep reading... それともget the cheatsheets .
読書ありがとうございます.私のブログの上で、または、私の後を追ってくださいinspiredwebdev または
免責事項:アマゾンへのリンクと教育的なアフィリエイトのリンクは、あなたが私のための余分な手数料を生成する購入を購入します.ありがとう
私の電子ブックを得るAmazon and Leanpub
JavaScript
一定の進化の言語は、過去数年では、多くの新機能が追加されているECMAScript
仕様.この記事は私の本の抜粋ですComplete Guide to Modern JavaScript そして、それはES 2016、ES 2017、ES 2018、ES 2019の新しい追加をカバーして、当初私のブログに掲示されましたinspiredWebDev .
記事の最後には、すべてをまとめたカンニングペーパーをダウンロードするリンクを見つけるでしょう.
ES 2016で新しいすべて
ES 2016は2つの新機能だけを導入しました
Array.prototype.includes()
Array.prototype.includes()
The includes()
メソッドはtrue
を返します.false
そうでなければ.let array = [1,2,4,5];
array.includes(2);
// true
array.includes(3);
// false
組み合わせ
includes()
with fromIndex
我々は提供する.includes()
要素の検索を開始するインデックスを指定します.デフォルト値は0ですが、負の値を渡すこともできます.最初の値は、検索する要素で、2番目の要素はインデックスです.
let array = [1,3,5,7,9,11];
array.includes(3,1);
// find the number 3 starting from array index 1
// true
array.includes(5,4);
//false
array.includes(1,-1);
// find the number 1 starting from the ending of the array going backwards
// false
array.includes(11,-3);
// true
array.includes(5,4);
返されるfalse
番号5を含む配列にもかかわらず、インデックス2で見つかりますが、位置4を見始めました.だからこそ、我々はそれを見つけることができなかったのですがfalse
.array.includes(1,-1);
返されるfalse
なぜなら、インデックス- 1を見ることができたからです.array.includes(11,-3);
返されるtrue
私たちはインデックス- 3に戻って、私たちのパスに値11を見つけるまで移動したので.指数演算子
ES 2016に先立って、次のようにしたでしょう.
Math.pow(2,2);
// 4
Math.pow(2,3);
// 8
新しい指数演算子を使うと、次のようになります.2**2;
// 4
2**3;
// 8
この例のように複数の操作を組み合わせると、とても便利になります.2**2**2;
// 16
Math.pow(Math.pow(2,2),2);
// 16
使用Math.pow()
あなたは継続的にそれらを連結する必要があり、それはかなり長いと乱雑を得ることができます.指数演算子は、同じことを行うの高速かつクリーンな方法を提供します.ES 2017文字列パディング
Object.entries()
, Object.values()
その他ES 2017は、我々がここで見るつもりである多くのクールな新機能を導入しました.
文字列パディング
.padStart()
and .padEnd()
)最後に、文字列にパディングを追加することができます
.padEnd()
) または最初に.padStart()
) それらの"hello".padStart(6);
// " hello"
"hello".padEnd(6);
// "hello "
私たちは、我々が6を我々のパディングとして欲しいと指定したので、両方のケースで、我々はなぜ1つのスペースだけを得ましたか?それは起こりました
padStart
and padEnd
移動し、空のスペースを入力します.私たちの例では“hello”は5文字で、パッドは6です.次の例を見てください.
"hi".padStart(10);
// 10 - 2 = 8 empty spaces
// " hi"
"welcome".padStart(10);
// 10 - 6 = 4 empty spaces
// " welcome"
右揃える
padStart
私たちはpadStart
我々が正しい何かを整列させたいならば.const strings = ["short", "medium length", "very long string"];
const longestString = strings.sort(str => str.length).map(str => str.length)[0];
strings.forEach(str => console.log(str.padStart(longestString)));
// very long string
// medium length
// short
最初に、我々は我々のストリングの最も長いものをつかみ、その長さを測定しました.そこで、我々はpadStart
すべての文字列には、最長の長さに基づいているので、私たちは現在、すべての右側に完全に整列している.パッドにカスタム値を追加する
パッドとして空白を加えるだけではなく、文字列と数字の両方を渡すことができます.
"hello".padEnd(13," Alberto");
// "hello Alberto"
"1".padStart(3,0);
// "001"
"99".padStart(3,0);
// "099"
Object.entries()
and Object.values()
まず最初にオブジェクトを作りましょう.const family = {
father: "Jonathan Kent",
mother: "Martha Kent",
son: "Clark Kent",
}
以前のバージョンではJavaScript
このようなオブジェクト内の値にアクセスしたでしょう.Object.keys(family);
// ["father", "mother", "son"]
family.father;
"Jonathan Kent"
Object.keys()
その後、値にアクセスするために使用しなければならなかったオブジェクトのキーだけを返しました.ここでは、2つ以上のオブジェクトにアクセスする方法があります.
Object.values(family);
// ["Jonathan Kent", "Martha Kent", "Clark Kent"]
Object.entries(family);
// ["father", "Jonathan Kent"]
// ["mother", "Martha Kent"]
// ["son", "Clark Kent"]
Object.values()
すべての値の配列を返しますObject.entries()
キーと値の両方を含む配列の配列を返します.Object.getOwnPropertyDescriptors()
このメソッドは、オブジェクトのすべてのプロパティ記述子を返します.返される属性は
value
, writable
, get
, set
, configurable
and enumerable
.const myObj = {
name: "Alberto",
age: 25,
greet() {
console.log("hello");
},
}
Object.getOwnPropertyDescriptors(myObj);
// age:{value: 25, writable: true, enumerable: true, configurable: true}
// greet:{value: ƒ, writable: true, enumerable: true, configurable: true}
// name:{value: "Alberto", writable: true, enumerable: true, configurable: true}
関数パラメータリストとコールにおける後のコンマ
これは構文へのわずかな変更です.今、オブジェクトを書くとき、最後の1つであるかどうかにかかわらず、各々のパラメタの後に後のコンマを残すことができます.
// from this
const object = {
prop1: "prop",
prop2: "propop"
}
// to this
const object = {
prop1: "prop",
prop2: "propop",
}
2番目のプロパティの最後にコンマをどのように書きましたか.あなたがそれを置かないならば、それはどんなエラーも投げません、しかし、それがあなたの同僚またはチームメンバーの人生をより簡単にするように、それは従うことはより良い習慣です.
// I write
const object = {
prop1: "prop",
prop2: "propop"
}
// my colleague updates the code, adding a new property
const object = {
prop1: "prop",
prop2: "propop"
prop3: "propopop"
}
// Suddenly, he gets an error because he did not notice that I forgot to leave a comma at the end of the last parameter.
共有メモリと
Atomics
からMDN :When memory is shared, multiple threads can read and write the same data in memory. Atomic operations make sure that predictable values are written and read, that operations are finished before the next operation starts and that operation is not interrupted.
Atomics
はコンストラクタではなく、そのプロパティとメソッドの全てが静的ですMath
) したがって、我々は新しい演算子を使用したり、Atomics
関数としてのオブジェクト.メソッドの例は以下の通りです:
SharedArrayBuffer
(一般的な固定長バイナリデータバッファ)汎用で、固定長の生のバイナリデータバッファを表すオブジェクト.の例を見てみましょう
Atomics
メソッド:Atomics.add()
, Atomics.sub()
, Atomics.load()
and Atomics.store()
Atomics.add()
は、3つの引数、配列、インデックス、および値を受け取り、加算を実行する前に、そのインデックスで前の値を返します.// create a `SharedArrayBuffer`
const buffer = new SharedArrayBuffer(16);
const uint8 = new Uint8Array(buffer);
// add a value at the first position
uint8[0] = 10;
console.log(Atomics.add(uint8, 0, 5));
// 10
// 10 + 5 = 15
console.log(uint8[0])
// 15
console.log(Atomics.load(uint8,0));
// 15
ご覧の通り、呼び出しAtomics.add()
を返します.我々が再び呼ぶときuint8[0]
追加を行い、15を得た.配列から特定の値を取得するには
Atomics.load
と2つの引数、配列、およびインデックスを渡します.Atomics.sub()
同じように動作するAtomics.add()
しかし、それは値を減算します.// create a `SharedArrayBuffer`
const buffer = new SharedArrayBuffer(16);
const uint8 = new Uint8Array(buffer);
// add a value at the first position
uint8[0] = 10;
console.log(Atomics.sub(uint8, 0, 5));
// 10
// 10 - 5 = 5
console.log(uint8[0])
// 5
console.log(Atomics.store(uint8,0,3));
// 3
console.log(Atomics.load(uint8,0));
// 3
ここではAtomics.sub()
を返します.uint8[0]
これは10 - 5に相当する.と同じ
Atomics.add()
, このメソッドは、このインデックスの場合、前の値を返します.私たちはその後
Atomics.store()
特定の値を格納するには、この場合、配列の特定のインデックスにおいて、この場合、0、第1の位置.Atomics.store()
を返します.我々が呼ぶとき、あなたはそれを見ることができますAtomics.load()
その特定のインデックスで、我々は3を得て、もう5を得ません.Atomics.and()
, Atomics.or()
and Atomics.xor()
これらの3つのメソッドは、配列の与えられた位置において、ビット単位AND AND OR XOR演算を実行します.ビット単位の操作についてもっと読み込むことができますWikipedia このリンクでhttps://en.wikipedia.org/wiki/Bitwise_operation 非同期で待つ
Keep reading... それともget the cheatsheets .
読書ありがとうございます.私のブログの上で、または、私の後を追ってくださいinspiredwebdev または
免責事項:アマゾンへのリンクと教育的なアフィリエイトのリンクは、あなたが私のための余分な手数料を生成する購入を購入します.ありがとう
私の電子ブックを得るAmazon and Leanpub
Reference
この問題について(JavaScript : ES 2016からES 2019へのすべて), 我々は、より多くの情報をここで見つけました https://dev.to/albertomontalesi/javascript-everything-from-es2016-to-es2019-246cテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol