10.20学习笔记

ES6

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言

这种语言在万维网上应用广泛,它往往被称为JavaScriptJScript,但实际上后两者是ECMA-262标准的实现和扩展。

 

模板对象 

 

新的语法  $ {NAME},并把它放在反引号里

 

 

遍历数组

 

var arr=['jack','rose','lucy','lolita'];
console.log(' 原始for循环:');
for(var i=0;i<arr.length;i++){
console.log(i+' '+arr[i]);
}
 
console.log(' ESS[forEach]:');
arr.forEach(function(value,index){
console.log(index+' '+value);
})
 
console.log(' for-in:');
for(var i in arr){
console.log(i+' '+arr[i]);
}
 
console.log('ES6 [for-of]:');
for(var name of arr){
console.log(name);
}
 
 
 
 
var arr2=[56,88,100,'99',150,1818];
//过滤数组(filter)
arr2=arr2. filter(function(value,index){
return value>100;
})
console.log(arr2);
//遍历的同时修改
arr=arr. map(function(value,index){
return 'welcome:'+value+' '+index;
})
console.log(arr);
 
 
 
 
 
新的集合
Arry set map三者的区别?

小结:对比三种存储介质

Array: 有序集合,下标是唯一的,值是可以重复的

Set   : 无序集合,没有下标,值就是唯一的

Map : 无序集合,采用键值对形式存储数据,键(key)是唯一的,值可以重复

 

set

 

map

 

var myset = new Set("ABCDEAB");//实际存储的值是:ABCDE,因为会自动过滤重复的值
console.log( myset.size);// Set集合的长度:0
myset. add("W");//给Set添加一个值
myset. delete("A");//从Set中 除A
myset. clear();// 清空整个Set集合
console.info(myset. has("X")) // 检索Set中 是否有X这个值
console.info(myset[2]) // Set不支持索引,所以这行会报错
Array.from(myset);// Set转数组

key-value
var maps = new Map();
maps.set("username", "小三");//存储三组数据
maps.set("age", 20);
maps.set("sex", "男");
console.log( maps.get("username"));// 通过Key取出
console.log(maps.size);//返回长度:3
console.log(maps.has("sex"));//是否有该key
console.log(maps.delete("age"));//根据key删除一个值
//      console.log(map.clear());//清空
console.log(maps);//输出整个map集合
console.info( maps.keys());// 返回Key的集合
console.info( maps.values());// 返回Value的集合
 
 
 
 
面向对象的方法

Object.create():根据原型创建一个子类对象(继承的另一种形式)

ct.defineProperty(Obj,property,{}); 在一个对象上定义新的属性

Object.defineProperties(对象名,要添加的属性): 为对象一次定义多个属性

 

 

 

 

修饰器set和get

 

 

 

默认参数

 

 

 

拓展运算符 三个点(...

将一根数组转换为用逗号分隔的参数列表

 

 

 

let 和 var

的区别?

1.定义的变量作用域只是封闭块,而不是整个函数

2.var定义变量声明提前,也就是可以在创建前获取,但结果是undefined;

而let不存在声明提前,所以如果在创建前获取,会报错的

3.var定义的全局变量是属于window的,可以通过window取出来 (window点的出来);

而let定义的全局不属于window (window点不出来)

 

 

 

const常量
特点 通常全局 局部时等于let效果
1.常量不让后来修改
2.常量必须有初始值
3.如果将const定义的变量放在块级作用域中,则与let效果一样
 
解构
1.逗号隔开,用来批量赋值 (按顺序去赋值) 2.使用解构进行变量的交换 [a,b]=[b,a]

 

 

箭头函数

首先,我们发现省略了function,用()代替。

其次,{}被=>代替了。

最后,里面return没有了,因为它将暗地里返回单个语句的结果。如果你超过了一行,将需要明确使用return。

最重要的是,在ES6中的内层函数里,可以潇洒的使用this,它代表的就是外层函数的 ☆☆

this。因为箭头函数没有它自己的this值,箭头函数内的this值继承自外围作用域。

新增写法

String:

repeat();重复当前字符串多少次 重复多少次

console.log(“ABC".repeat(3));//ABCABCABC

includes();检测当前字符串是否包含某个字符串,包含返回true ☆ 检测是否包含

console.log(“ABC".includes("A"));//true

startsWith();检测某字符串是否在源字符串的头部,包含返回true ☆ 是不是以啥开头

console.log(“ABC".startsWith("B"));//false

endsWith();检测某字符串是否在源字符串的尾部,包含返回true ☆是不是以啥结尾

console.log("ABC".endsWith("C"));//true

Math:

Math.trunc();不进位的去除小数点

console.log(Math.trunc(3213.5));//3213

Math.sign();如果参数数字是正数,返回1;如果是负数,返回-1;如果是0,返回0

console.log(Math.sign(3213.5));//1

console.log(Math.sign(-3213.5));//-1

console.log(Math.sign(0));//0

☆用来判断当前数字的正负数
 
 
 
 
map和weakmap的区别?
 
它两的结构类似也是用于键值对的集合
区别:weakmap只接受object对象作为键名(null)除外,方法只有set(),get(),has(),delete()
weakup没有遍历方法,size属性,clear方法
 
 
 

猜你喜欢

转载自www.cnblogs.com/xieyankeai/p/9832152.html