JavaScriptの記録とタプル
24517 ワード
フォア・ホラ!エヌエストポストHablare Sobre Las Nuevas Caracterは、Presas que serを紹介します.特別なsobreロスnuevos tiposデdatos「記録とタプル」propuesto エヌEl EcmasScript Porロビンricard yリックボタン、en estos momentos se encuentranエヌラ(2021 - 01 - 01)罪禁輸pron cambiara.ESTA機能は、Agregar Dos Tiposデvalores Primitivos al Lenguajeを含みます: 記録(同様に国連objeto). tuplas ( unarrayと同様).
構文
ラSintaxisは、同様にロスconocidos arreglos y objetosコンna sutil diferencia、una almohadilla o signoデハッシュ(Chenhn)アルcomienzoです.
カラコンは
デPrincipioなしparece灘特別な、罪は禁欲的なtiene cosas muy interesantes.ラ・カークテーター・デ・ラス・カークテーター・エストラス・ヌエヴォス・ティポ・デ・データスの物語
変異
Edos Nuevos TiposデDatos息子inmutables、類似したo
イグアナ
Narth de Las Caracter Les M ' s s Me Me guus an estoy Seguro que Otros desarrolladores Tambi et n , es a Capacidad de poder compare record y tuples por su valor y no por su referenciaVEMAOS非EJPLOMO
コンステビリド詐欺プロピード
Podoros InvurzarロスMは、ya conconemos tanto para arreglo como para objetosをtodosします.破壊、スプレッド&レスト演算子、高次関数.
トドソン・JSONについて
アルゴque干し草que tenerエヌcuenta es que
思いやり
Edos Nuevos Tipos de Datos Tienen ciertas que Defincione que Deegemos tener en cuenta , alguna de ella son : レコード ラスキーデレンサーストリング. ロスバレスレスデレンサープリミティブ. タプル Los Elementtos Degener Per Premitivos (無記名のPondemos Infunir Funciones Por EJPLOMO ) アルゴデエステErresエヌcは、digoセリアンのSigienentesを得ます:
結論
パラFinalizar EstoポストQueero Hablarteデロスプロs yコントラque pude traer la nueva sintaxis、AunqueエヌRealidad息子M . Ventajas : La Nueva sintaxis es precisaEl F Care Do Recordar y No Tiene Mucha diferencia cons los objetos y arreglo , adem des s la la tataas de compare . Desventaja : Ne Desventaja Pen que El USO de el Car - to - cter Alfanum Les Ro , Cheno de Roco , Sintaxis si no se USA la la a a a a a a a a a a la a a a a a a a a a a a la a a a a a a a a a a a la a a a a a a a a a a a a la a a a a a a a a a a a a la a a a a a a a a a a a a la a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aエタSintaxisタンビは、escampos privados de clases . ESO Es Todo Lo que Scaleは比較したものであるプエベイリアルPlayground クリードporリックボタンy ver .MuchasグラシアスPor leer ;;
リファレンス https://exploringjs.com/deep-js/ch_shared-mutable-state.html https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Classes/Private_class_fields https://2ality.com/2020/05/records-tuples-first-look.html#restrictions-of-what-can-be-inside-records-and-tuples https://github.com/tc39/proposal-record-tuple https://rickbutton.github.io/record-tuple-playground/
構文
ラSintaxisは、同様にロスconocidos arreglos y objetosコンna sutil diferencia、una almohadilla o signoデハッシュ(Chenhn)アルcomienzoです.
const person = #{
name: "Brian",
lastName: "Santeliz"
}
const lenguages = #["Javascript", "Python", "Haskell", "Rust"]
カラコンは
デPrincipioなしparece灘特別な、罪は禁欲的なtiene cosas muy interesantes.ラ・カークテーター・デ・ラス・カークテーター・エストラス・ヌエヴォス・ティポ・デ・データスの物語
変異
Edos Nuevos TiposデDatos息子inmutables、類似したo
object.freeze()
カムビールの詩的記録をめぐってo o frameworks que usan el Principioデla inmutabilidad como反応としてのEsto Puede Ser muy delは、反応します.そして、アデウムCero immutablejsパラReizizar Estas operaciones .const person = #{
name: "Brian",
lastName: "Santeliz"
}
person.age = "20" // Error
const lenguages = #["Javascript", "Python", "Haskell", "Rust"]
lenguages[0] = "Php" // Error
エトスは、datos pueden anidarseを記録します.const hero = #{
name: "Iron Man",
movies: #["Avengers", "Civil War", "Avengers: End Game"]
}
const lenguages = # ["Python", "Php", #{name:"JavaScript", creator:"Brendan Eich"}]
イグアナ
Narth de Las Caracter Les M ' s s Me Me guus an estoy Seguro que Otros desarrolladores Tambi et n , es a Capacidad de poder compare record y tuples por su valor y no por su referenciaVEMAOS非EJPLOMO
const obj = {name:"Hello"};
const obj2 = {name:"Hello"};
obj === obj2 //false
Aunque Estoy Comparado Das Oobjetos que Son iguales ( I . L . Nunobre ) la比較法Nuna soluci n n para esto seria , usando el m et todo deJSON.stringify()
.const obj = {name:"Hello"};
const obj2 = {name:"Hello"};
JSON.stringify(obj) === JSON.stringify(obj2)
//true
Sindo Tenene Algunos問題についてLaブエナNoticia es que詐欺記録とTuplesなしes必需品ya que estos比較者パパエルValor y no por su referencia.const obj = #{name:"Hello"};
const obj2 = #{name:"Hello"};
obj === obj2 //true
const colors = #["red","black","green", "blue"]
colors === #["red","black","green", "blue"]
//true
天才!インクルュースコンレコーズ/タプルアニダドス.const lenguages = #[ "Php", #{name:"JavaScript", creator:"Brendan Eich"}]
lenguages === #["Php", #{name:"JavaScript", creator:"Brendan Eich"}]
//true
コモMencione Triiororte Los Records y Tuples息子Datos PirmitivosエヌJavascript、Estse SE Puede Comproperususla La Senenciaデtypeof
. typeof #{a: 2, y: 3}
// "record"
typeof #[4,5,4]
//"tuple"
コンステビリド詐欺プロピード
Podoros InvurzarロスMは、ya conconemos tanto para arreglo como para objetosをtodosします.破壊、スプレッド&レスト演算子、高次関数.
const hero = #{
name:"Iron Man ",
creator:"Marvel",
power:"1200"
}
//Destructuring & Rest operator.
const {name:newName, ...others} = hero;
console.log(others)
//{creator: "Marvel", power: "1200"}
const age = 34
const newHero = #{
...others, //syntax spread
age, //short notation
name:"Cap America"
};
const colors = #["yellow", "blue", "red"];
//filter method
const redColor = colors.filter((color)=>color === "red");
console.log(redColor)
//#["red"]
トドソン・JSONについて
アルゴque干し草que tenerエヌcuenta es que
JSON.stringify()
Trataロスレコードcomo objetos y las tuples como array de manera recursivaエルメトドJSON.parseImmutable()
コココナJSON.parse()
Lugar de objetos y tuples en lugde de array nuevamente de manera recursivaconst recordExample = JSON.parseImmutable('{"x":"Hello","y":["Banana","Apple"]}');
console.log(recordExample);
// #{x: "Hello", y: #["Banana", "Apple"]}
const objExample = JSON.stringify(recordExample);
console.log(objExample);
// "{x: "Hello", y: ["Banana", "Apple"]}"
思いやり
Edos Nuevos Tipos de Datos Tienen ciertas que Defincione que Deegemos tener en cuenta , alguna de ella son :
//Error, no se pueden tener objetos.
const errorRecordObj = #{
obj: {
a: "i'm an object"
},
};
//Error, no se pueden tener funciones.
const errorRecordFunction = #{
example: () => alert("Hello World!")
};
//Ningún otro dato que no se un primitivo.
const errorRecordDate = #{
date: new Date(),
};
const errorRecordClass = #{
class: new Car(),
};
const errorTupleClass = #[new Car()];
const errorRecordSymbol = #{ [Symbol()]: #{} };
結論
パラFinalizar EstoポストQueero Hablarteデロスプロs yコントラque pude traer la nueva sintaxis、AunqueエヌRealidad息子M .
リファレンス
Reference
この問題について(JavaScriptの記録とタプル), 我々は、より多くの情報をここで見つけました https://dev.to/briansanteliz/nuevos-tipos-de-datos-en-javascript-records-tuples-2kieテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol