es6 newly added data types: 1. Symbol type; 2. Set type; 3. Map type; 4. WeakSet type; 5. WeakMap type; 6. TypedArray type.
The operating environment of this tutorial: Windows 7 system, ECMAScript version 6, Dell G3 computer.
New data types in ES6
Let’s take a look at what data types there were beforees6
,
Basic type:
string
##null
undefined
Q1: How to make an object have a private attribute? (What is the use of Symbol?)
keyof the object
{ // 私有作用域 let a = Symbol() window.oo = { name: '对象', age: 18, [a]: '这是一个私有属性' } console.log(oo[a]) // 这是一个私有属性 } // 不能再作用域外打印...
At this time the object
oo There is a private attribute, which cannot be printed correctly outside the scope.
#Q2: How to quickly remove duplicates from an array?
Array.form()This is a very classic interview question, let me talk about it before doing this
es6
Previous deduplication method:
let array = [1, 2, 3, 4, 4, 5, 5, 6] ~function uniq() { let result = [] let hash = {} for (let i=0; iBut 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.
When we useSet
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)] }()Copy after login
Even object references can be deduplicated, a very simple method.
Q3: What is the use of Map?
keycan be of any type, no longer like the previous object
keycan 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关联的值");
Q4: What is the difference between WeakMap and Map?
keyis a weak reference
keycan only be an object
Q5: What is the difference between WeakSet and Set?
Q6: What is the use of TypedArray?
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!