ホームページ >ウェブフロントエンド >jsチュートリアル >es6 で追加された新しいデータ型は何ですか?

es6 で追加された新しいデータ型は何ですか?

青灯夜游
青灯夜游オリジナル
2021-09-03 15:42:397953ブラウズ

es6 新しく追加されたデータ型: 1. シンボル型; 2. セット型; 3. マップ型; 4. WeakSet 型; 5. WeakMap 型; 6. TypedArray 型。

es6 で追加された新しいデータ型は何ですか?

このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。

ES6 の新しいデータ型

  • シンボル タイプ(基本)
  • セットタイプ (複合)
  • マップ タイプ (複合)
  • WeakSet タイプ (複合)
  • WeakMap タイプ ( Complex)
  • TypedArray 型 (Complex)

es6 より前にどのようなデータ型があったのかを見てみましょう。

  • 基本タイプ:

    • string

    • ##null

    • #未定義

    • ##番号
    • ##boolean
    • 複合型:
  • オブジェクト
    • 新しいタイプは基本的に日常業務では使用されないため、具体的な導入については
    MDN
  • で直接説明します。頻繁に説明します。インタビューで遭遇した質問....

Q1: オブジェクトにプライベート属性を持たせるにはどうすればよいですか? (Symbol の用途は何ですか?)

答え: Symbol をオブジェクト

{ // 私有作用域
  let a = Symbol()
  window.oo = {
    name: '对象',
    age: 18,
    [a]: '这是一个私有属性'
  }
  console.log(oo[a]) // 这是一个私有属性
}
// 不能再作用域外打印...

key として使用します。 the objectoo スコープ外では正しく出力できないプライベート属性があります。

#Q2: 配列から重複をすばやく削除するにはどうすればよいですか? es6 で追加された新しいデータ型は何ですか?

回答: Set を使用して

Array.form()

これは非常に古典的な面接の質問です。その前にお話しさせてください。 thises6 以前の重複排除メソッド:

let array = [1, 2, 3, 4, 4, 5, 5, 6]
~function uniq() {
  let result = []
  let hash = {}
  for (let i=0; i<array.length><br><code></code>ただし、このメソッドには大きな欠点があります。重複排除配列にオブジェクトを含めることはできず、このメソッドによって返される結果は次のとおりです。メソッドはすべて文字列であるため、このような配列は重複排除できません。 <p class="image-package"><img src="https://img.php.cn/upload/image/369/298/171/1630654569660947.png" title="1630654569660947.png" alt="es6 で追加された新しいデータ型は何ですか?">Set</p>
<p></p>
<pre class="brush:php;toolbar:false">let a = {a: 11}
let array = [0, 1, '1', '22', 22, a, a, 66]
~function uniq() {
  return Array.from(new Set(array)) // 装比写法 [... new Set(array)]
}()

を使用すると、オブジェクト参照さえも重複排除できます。これは非常に簡単な方法です。

es6 で追加された新しいデータ型は何ですか?Q3: マップの用途は何ですか?

回答:

map はオブジェクトの拡張に似ています。その key

は任意のタイプにすることができ、以前のオブジェクト

とは異なります。 key は文字列のみにすることができます。つまり、この機能を使用すると、以前の重複排除を最適化できますが、すでに set があるため、これは必要ありません。 栗をください

let myMap = new Map()
 
let keyObj = {}
let keyFunc = function () {}
let keyString = "a string"
 
// 添加键
myMap.set(keyString, "和键'a string'关联的值");
myMap.set(keyObj, "和键keyObj关联的值");
myMap.set(keyFunc, "和键keyFunc关联的值");

Q4: WeakMap と Map の違いは何ですか?

es6 で追加された新しいデータ型は何ですか?

答え:

WeakMap

違いは、
    key
  • への参照が弱い参照であることです

    WeakMap

  • key
  • はオブジェクトのみ可能です

    知っておくべきことは何ですか弱参照は次のとおりです:記事: ES2015 WeakMap の学習と使用

  • ##Q5: WeakSet と Set の違いは何ですか?


回答: 上記と同じ

Q6: TypedArray の用途は何ですか?

回答: このタイプを使用する方法はほとんどありません。主にバイナリ ファイル (オーディオ、ファイル、ビデオ、写真など) の処理に使用され、ホイールを開発しない限り通常は使用されません。あなた自身。

[推奨学習: JavaScript 上級チュートリアル]

以上がes6 で追加された新しいデータ型は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。