一、 標題let和const 聲明變量和常量
let
- 作用域只侷限於當前代碼塊
- 使用let申明的變量作用域不會被提升
- 在相同的作用域下不能申明相同的變量
- for循環體現let的父子作用域
const
- 只在當前代碼塊中有效
- 作用域不會被提升
- 不能被重複申明
- 申明的常量必須賦值
二、 解構和賦值
- 基本用法
let [name.age,sex]=['張三','20','女'];
- 對象的解構賦值
let {name.age,sex}={name:'張三',age:'20',sex:'女'};
- 數組的解構賦值
let [arr1,[arr2,arr3,[arr4,arr5]]]=[1,[2,3,[4,5]]];
console.log(arr1,arr2,arr3,arr4,arr5); //1 2 3 4 5
let [a,,c]=[1,2,3]
console.log(a,c); //1 3
- 基本類型的解構賦值
let [a,b,c,d,e]='我是中國人';
console.log(a,b,c,d,e); //我 是 中 國 人
三、數據集合set
- 創建一個集合
let set=new Set(['張三','李四','李四']);
console.log(set); //set(2){"張三","李四"}
可以去除重複的
- 一個屬性
console.log(set.size); //2
-
四個方法(支持鏈式)
add()添加
delete()刪除
has()判斷是否有某個元素,true/false
clear()清除集合 -
keys和value
鍵值對,結構器
四、數據集合map
特點:類似於對象,本質上是鍵值對的集合:“鍵”不侷限與字符串,各種類型的值
(包括對象)都可以當作鍵;對象“字符串-值”,Map“值-值”,是一種更加完美的Hash結構實現
- 創建一個Map
const map=new Map();
console.log(map.size);
-
set和get
map.set()設置集合中的值
map.get()獲取集合中的值 -
delete
map.delete()刪除 -
has
map.has()判斷是否有某個元素,true/false -
clear
map.clear()清除map -
keys(),values(),entries()
map.keys();構造器key值
map.values();構造器values值
map.entries();構造器entries值 -
遍歷
map.forEach(function(value,index){
console.log(index+':'+value);
})
- 注意事項:
map.set({},‘呵呵呵’);
map.set({},‘哈哈哈’);
這個就是map集合裏的兩個不同對象
五、 Symbol
數據類型Symbol表示獨一無二的值
對象的屬性名可以有兩種類型:字符串和Symbol類型
解決命名衝突
let str=Symbol();
console.log(typeof.str);//數據類型是Symbol
六、class的基本運用
- 構造函數
function Person(name,age){
this.name=name;
this.age=age;
}
- 通過clas面向對象
class Person{
constructor(name,age){
this.name=name;
this.age=age;
}
print(){
console.log('我叫'+this.name+',今年'+this.age+'歲');
}
}
let person=new Person('張三',19);
console.log(person);
person.print();
未完待續