Home  >  Article  >  Web Front-end  >  What are the new data types added in es6?

What are the new data types added in es6?

青灯夜游
青灯夜游Original
2021-09-03 15:42:397925browse

es6 newly added data types: 1. Symbol type; 2. Set type; 3. Map type; 4. WeakSet type; 5. WeakMap type; 6. TypedArray type.

What are the new data types added in es6?

The operating environment of this tutorial: Windows 7 system, ECMAScript version 6, Dell G3 computer.

New data types in ES6

  • Symbol type(Basic)
  • Set type (complex)
  • Map type (complex)
  • WeakSet type (complex)
  • WeakMap type (Complex)
  • TypedArray type (Complex)

Let’s take a look at what data types there were before es6,

  • Basic type:

    • string

    • ##null

    • undefined

    • ##number

    • ##boolean
    Complex type:
    • object
    Since the new types are basically not used in daily work, so the specific introduction is directly explained by
  • MDN
, Let me explain to you some frequently encountered questions in interviews....

Q1: How to make an object have a private attribute? (What is the use of Symbol?)

Answer: Use Symbol

as the

key of the object

{ // 私有作用域
  let a = Symbol()
  window.oo = {
    name: '对象',
    age: 18,
    [a]: '这是一个私有属性'
  }
  console.log(oo[a]) // 这是一个私有属性
}
// 不能再作用域外打印...
At this time the objectoo There is a private attribute, which cannot be printed correctly outside the scope.

What are the new data types added in es6?#Q2: How to quickly remove duplicates from an array?

Answer: Use Set

to add

Array.form()This is a very classic interview question, let me talk about it before doing thises6 Previous deduplication method:

let array = [1, 2, 3, 4, 4, 5, 5, 6]
~function uniq() {
  let result = []
  let hash = {}
  for (let i=0; i<array.length><code></code><p class="image-package">But this method has huge drawbacks. There cannot be objects in the deduplication array, and the result returned by this method are all strings, so such an array cannot be deduplicated. <img src="https://img.php.cn/upload/image/369/298/171/1630654569660947.png" title="1630654569660947.png" alt="What are the new data types added in es6?"></p>When we use <p>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)]
}()

Even object references can be deduplicated, a very simple method. What are the new data types added in es6?

Q3: What is the use of Map?

Answer: map

is more like an extension of an object. Its

key can be of any type, no longer like the previous object key can only be a string, that is, with this feature, we can optimize the previous deduplication, but it is not necessary because there is already set. Give me a chestnut

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关联的值");

What are the new data types added in es6?Q4: What is the difference between WeakMap and Map?

Answer:

    WeakMap
  • The difference is that the reference to

    key is a weak reference

  • WeakMap
  • 's

    key can only be an object

    What you need to know is what a weak reference is:
  • Article: Learning and using ES2015 WeakMap


Q5: What is the difference between WeakSet and Set?

Answer: Same as above

Q6: What is the use of TypedArray?

Answer: There are fewer ways to use this type. It is mainly used for processing binary files (audio, files, videos, pictures...) and is generally not used unless you develop the wheel yourself. .

[Recommended learning:

javascript advanced tutorial

]

The above is the detailed content of What are the new data types added in es6?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn