蓝桥杯ES6

新增关键字

var 有作用域提升的作用

let 和 const 不会提升作用域

字符串的拓展·

" `` " 双反斜角可以识别多行字符串

${} 字符串占位符,要配合反斜角使用

  • includes()判断是否包含指定字符串,如果包含返回 true,反之 false。
  • startsWith():判断当前字符串是否以指定的子字符串开头,如果是则返回 true,反之 false。
  • endsWith():判断当前字符串是否以指定的子字符串结尾,如果是则返回 true,反之 false。

repeat(n) 方法用于返回一个重复 n 次原字符串的新字符串,其参数 n 为整数,如果设置 n 为小数,会自动转换为整数。

let str = "HELLO";
console.log(str.repeat(4));

replaceAll() 方法来解决这个问题,它可以用来替换所有匹配的字符串就,解决replace()方法只能替换匹配到的第一个字符串的问题

数组的拓展

var arr = Array.from(arrLike);
 将可遍历的对象转换为数组(基于原来的对象创造一个数组)
 
 
 for (variable of iterable) {
}
新的遍历方式,variable存值,iterable存数据结构,可以遍历字符串,数组,列表等


扩展运算符(...)
将对象展开,如
let animals = ["老虎🐯", "乌龟🐢", "鱼🐟"];
let newAnimals = [...animals];
console.log(newAnimals);
相当于将animals赋值给newAnimals

函数的拓展

function func(name, words = "你好") {
  console.log(`${words}${name}`);
}
可以直接在形参设置默认值,默认值设置在形参的末尾


function parameter() {
  return "🖤";
}
function func(words, name = parameter()) {
  console.log(words, name);
}
还可以设置函数为默认值


function func(name, value, mount, { a, b, c, d = "苹果" }) {
  console.log(`${name}${value}元钱买了${mount}${d}`);
  console.log(`${name}${value}元钱买了${mount}${c}`);
}
func("小蓝", 5, 3, {
  a: "西瓜",
  b: "菠萝",
  c: "桃子",
});
函数还可以使用键值对设置参数


// 剩余参数必须是函数的最后一个参数
myfunction(parameters, ...rest);
rest为剩余参数,简写参数列表
如:
function func(a, b, ...rest) {
  console.log(rest);
}
func(1, 2, 3, 4, 5, 6, 7, 8, 10);
rest:[3,4,5,6,7,8,9,10]


(param1,param2,...,paramN) => {expression}
箭头函数语法
箭头函数参数单个时,可以省略括号:
parama => {expression}

类的拓展

class MyClass {
  // constructor 方法是类的默认方法
  constructor(num) {
    this.num = num;
    this.enginesActive = false;
  }
  // 相当于 MyClass.prototype.startEngines
  startEngines() {
    console.log("staring...");
    this.enginesActive = true;
  }
}
类的声明(class),语法糖,原理仍然是构造函数

const myclass = new MyClass(1);
myclass.startEngines();

js中类的继承大致和Java一样,不过js可以extends后可以接表达式


js的super也大致和Java一样


静态属性和静态方法大致也和Java类似,也可以被继承


// 私有属性
#propertiesName;
// 私有方法
#methodName;
js用#定义私有属性和私有方法,是因为js没有独立的类型,用#作为标识易于区分


新增对象方法
   console.log(Object.is(-0,+0));
   console.log(Object.is(NaN,NaN));
   console.log(Object.is(7,"7"));
Object.is() 比较两个值的大小,区别于“==”的比大小

Object.assign(obj,obj2,obj3)
将后面的所有对象合并到第一个对象,后面的属性会覆盖前面的属性
而且这种合并是一种浅拷贝,不会改变地址

Set

let s = new Set(["blue","black","red"])

    s.add(1)
    s.add(100)
    console.log(s+"      "+s.size)

Set是一种不允许出现重复数据的类似数组的数据结构

使用add添加元素,size获取长度
new Set(["blue","black","red"])初始化时括号里要加入中括号[]

使用delete方法删除特定元素
使用has方法判断元素是否在Set中
使用clear方法清除所有数据

    s.forEach(function details(values){
        console.log(values)
    })
遍历方法,在forEach中写入一个回调方法,供每个元素执行,values为要传入元素的形参

Map

相比于对象的键值对,map的键值对支持任意类型,并且可以被直接被forEach遍历

  m.set([1,2,3],"saiuhd")
    m.set("as",1)
    m.set(3,"Sfyasuf")

    console.log(m)
    console.log(m.get(3))

Map使用set添加键值对,用get获取值

has() 用来判断指定键名对应的数据是否存在于当前集合中。
delete() 用来删除指定键名的数据。
clear() 用来清空集合中的数据。

let m = new Map([
    [1,"张三"],
    [2,"李四"],
    [3,"王五"],
    [4,"赵六"]
])直接初始化也需要[],并且键值对也需要[]包裹


m.forEach(function(value,key,ownerMap){
    console.log(value)
    console.log(key)
    console.log(ownerMap)
})
遍历类似Set,先提供一个回调函数,value现在被调用的值,key为该值的键,ownerMap表示整个Map
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值