es6

it2024-04-18  8

1 1) 不能重复定义变量,会报错 2 3 let name = '撩课学院'; 4 let name = '撩课'; 5 console.log(name); 6 7 2) 不存在变量提升 8 9 console.log(str); 10 let str = '撩课'; 11 12 3) 块级作用域,获取不到 13 14 { 15 let str = '撩课'; 16 } 17 console.log(str); 18 19 if(true){ 20 let str = '撩课'; 21 } 22 console.log(str); //获取不到 23 24 const SITE = 'itLike'; 25 SITE = '撩课'; 26 console.log(SITE);

 

解构赋值:分解数组或对象 1 1. 数组的解构 2 let arr = ['张三', '李四', '王五']; 3 console.log(arr[0]); 4 console.log(arr[1]); 5 console.log(arr[2]); 6 // 等价 7 let [p1, p2, p3] = arr; 8 console.log(p1, p2, p3); 9 10 2. 对象的解构 11 12 let obj = { 13 name: '撩课学院', 14 site: 'itLike.com' 15 }; 16 let {name, site} = obj; 17 console.log(name, site); 18 19 3. 解构的重命名 20 let {name: lkName, site: lkSite} = {name: '撩课学院', site: 'itLike.com'}; 21 console.log(lkName, lkSite); 22 23 4. 多层解构 24 let [ 25 {name: lkName, site: lkSite}, 26 {colleges: [one, two, three]}, 27 pets 28 ] = [ 29 {name: '撩课学院', site: 'itLike.com'}, 30 {colleges: ['web', 'java', 'python']}, 31 '小撩' 32 ]; 33 console.log(lkName, lkSite, three, pets); 34 35 5. 默认解构 36 let {name = '撩课' , site} = {name: 'xxx', site: 'itLike.com'}; 37 console.log(name, site); 38 39 6.省略解构 40 let [,site,] = ['撩课', 'itLike', 'web']; 41 console.log(site); 42 43 /*function ajax(options) { 44 let method = options.method || 'get'; 45 46 }*/ 47 48 /*function ajax({method = 'get', data, url}) { 49 50 }*/ 1 1)模板字符串 2 let name = '小撩'; 3 let age = 25; 4 let intro = '我叫' + name + ', 今年' + age + '岁'; 5 let intro = `我叫${name},今年${age}岁!`; 6 console.log(intro); 7 8 2)字符串的新方法 9 10 let url = 'http://www.itlike.com'; 11 console.log(url.startsWith('http'));布尔 true 12 console.log(url.endsWith('cn'));布尔 false 13 console.log(url.includes('itlike'));布尔 true 14 let xl = '小撩很美!'; 15 console.log(xl.repeat(70)); 1 1)设置默认参数 2 function ajax(method = 'get', url, data) { 3 console.log(method, url, data); 4 } 5 ajax(); 6 7 2) 剩余运算符 8 9 function log(name, ...other) { 10 console.log(name);//'小撩' 11 console.log(other);//'女', 24, '漂亮女孩' 是个数组 12 } 13 log('小撩', '女', 24, '漂亮女孩'); 14 15 3) 箭头函数 16 17 ['张飒', '李四', '王五'].forEach((value)=>{ 18 console.log(value); 19 }); 20 21 箭头函数没有this的指向问题,而且没有arguments 22 23 let school = { 24 name: '撩课学院', 25 logThis: function () { 26 console.log(this);//当前school对象 27 setTimeout(()=>{ 28 console.log(this);//当前school对象 29 }, 1000); 30 setTimeout(function () { 31 console.log(this);//指向window 32 }); 33 } 34 }; 35 school.logThis(); 36 37 let test = ()=>{ 38 console.log(arguments);//报错 39 }; 40 test(); 41 42 4) 对象不是作用域 43 44 let site = 'itLike';//let 声明得变量不会挂在window上 45 // console.log(window.site); 46 let obj = { 47 site: '撩课', 48 func: ()=>{ 49 console.log(this);//window 50 console.log(this.site);//undefined 51 } 52 }; 53 obj.func(); 1 // 1)展开数组 2 /*let arr1 = [1, 2, 3]; 3 let arr2 = [4, 5, 6]; 4 console.log( ...arr1); 5 console.log( ...arr2); 6 let arr3 = [...arr1, ...arr2]; 7 console.log(arr3);*/ 8 9 // 2)展开对象 10 /* let obj1 = {name: '小撩'}; 11 let obj2 = {age: 24, phone: '1888888888'}; 12 let obj3 = {...obj1, ...obj2}; 13 console.log(obj3);*/ 1)属性简写 let name = '小撩'; let sex = '女'; let person = { name, sex, log(){ console.log(this.name, this.sex); } }; person.log(); 2) Object.is() console.log(Object.is(10, 10)); console.log(Object.is(undefined, undefined)); console.log(Object.is({}, {})); 3)Object.setPrototypeOf 原型对象 let obj = { name: '小撩' }; let obj2 = {}; Object.setPrototypeOf(obj2, obj);//设置obi2得原型为obj console.log(obj2.name); let obj3 = { __proto__: obj }; console.log(obj3.name); 4)super let obj = { sex: '女' }; let obj2 = { name: '大撩', __proto__:obj, getSex(){ console.log(super.sex); } }; obj2.getSex();// 1 1)类的定义 2 class Person { 3 constructor(name) { 4 this.name = name; 5 } 6 logName() { 7 console.log(this.name); 8 } 9 } 10 11 let p1 = new Person('张三'); 12 p1.logName(); 13 console.log(p1); 14 15 2)静态属性 16 class Person{ 17 constructor(name){ 18 this.name = name; 19 } 20 logName(){ 21 console.log(this.name); 22 } 23 // 静态属性和静态方法 24 static money = 10000000000000; 25 static logMoney(){ 26 console.log(this.money); 27 } 28 29 } 30 31 let p1 = new Person('张三'); 32 // p1.logName(); 33 // console.log(p1); 34 console.log(p1.money);//undefined 35 console.log(Person.money);//可以 36 Person.logMoney();//可以 37 38 39 // 3) 类的继承 40 /*class Person{ 41 constructor(name){ 42 this.name = name; 43 } 44 logName(){ 45 console.log(this.name); 46 } 47 } 48 49 class Boy extends Person{ 50 constructor(name, age){ 51 super(name); 52 this.age = age; 53 } 54 logMsg(){ 55 console.log(this.name, this.age); 56 } 57 } 58 59 let boy = new Boy('特朗普', 74); 60 console.log(boy); 61 boy.logName(); 62 boy.logMsg();*/ 1 1)Set 2 let names = new Set(); //不能有重复的 3 names.add('周杰伦'); 4 names.add('周杰伦'); 5 names.add('谢霆锋').add('刘德华'); 6 console.log(names); 7 names.forEach((name)=>{ 8 console.log(name); 9 }); 10 11 console.log(names.size); 12 console.log(names.has('谢霆锋1')); 13 console.log(names.delete('周杰伦')); 14 names.clear(); 15 16 数组去重 17 let arr = [1, 2, 3, 1, 1, 0, 2]; 18 let set = new Set([...arr]); 19 console.log(set); 1 let obj1 = { a: 1 }, obj2 = { b: 2 }; 2 let map = new Map([ 3 ['name', '张三'], 4 ['age', 18], 5 ['sex', '男'], 6 [obj1, '哈哈哈哈'], 7 [obj2, '呵呵呵呵'] 8 ]); 9 10 // set和get 11 map.set('friends', ['赵六', '力气']).set(['dog'], '小花'); 12 console.log(map); 13 console.log(map.get('name'));//取值 14 console.log(map.get(obj1));//取值 15 console.log(map.get(obj2)); 16 17 // delete 18 map.delete(obj1); 19 console.log(map); 20 21 22 console.log(map.has(obj1)); 23 map.clear(); 24 console.log(map); 25 26 console.log(map.keys()); 27 console.log(map.values());

map的键可以是任意值

转载于:https://www.cnblogs.com/zhangzhengyang/p/11247886.html

相关资源:javascript -es6
最新回复(0)