js(es6新增)

保持对代码的热爱,并保存怀疑态度

变量声明关键字(基础功能都是赋值)

let
1.全局变量不会绑定到window对象
2.权重不会提升
3.不允许重复声明
4 块级作用域:只要是花括号就是作用域(写在花括号里面)
5.暂时性死区
const 同let, const声明的是常亮,声明时立即赋值,之后再也不能修改其实const不允许修改的是地址,可以改值
也就是说变量声明了就不能再重复声明,对象数组复杂数据类型可以更改值

// let和const的使用场景:如非特殊需要,所有的var都可以改成let
// 如果需要声明一个再也不会被改变的变量,使用const

解构赋值

数组和字符:按照从左向右的顺序,依次解构,变量多了就undefined

let arr = [3,4,5,6];
let [abc,age,num,aec,qwe] = arr;
console.log(abc);

数组的话就是语义化会更好

对象的解构赋值
// var obj = {
// name:“admin”,
// sex:1,
// age:18
// }

// var name = obj.name

// var {sex,age,name} = obj;
// 按照键名一一对应,不存在的键名,为undefined

应用场景
function fn(){
return {
year:2020,month:12,date:31
}
}
var {year,month,date} = fn();
console.log(year,month,date);

可以直接通关键取值
也可传参的时候通过解构赋值来取每个值
// function fn([a,b,c,d,e]){}
// var arr = [2,3,4,5,6]
// fn(arr)

// 快速交换两个变量的值
// var a = 10;
// var b = 20;

// var [a,b] = [b,a]

箭头函数

    • 不能直接存在,必须作为值存在
    • 语法极简
    • 当有且只有一个形参时,可以省略小括号
    • 当有且只有返回语句时,可以省略return关键字和花括号
    • 伤害了代码的可读性
    • 当有且只有返回语句,返回的是对象时,要么不能省略花括号和return,要么将对象使用小括号包裹起来
    • 箭头函数没有自己的this,内部的this会自动使用外层this
    • 箭头函数不能被new执行

使用场景

  • 回调函数
  • 返回值
  • 等等小范围的使用
    • arr.sort((a,b)=>a-b)

ES6对字符的新增

  1. U编码 - 一组4位的十六进制

    • 对于非常用字符,超过69904数量的字符,采取两组4位的十六进制
    • ES6提出使用一组5位的十六进制表示原本需要两组4位的十六进制表示的u编码
    • 一组5位的十六进制表示的u编码,需要将5个十六进制放在花括号中才能解析:"\u{20BB6}"
    • 因为提供了新的表示方式,转换方法对应升级
      • 字符转编码:str.codePointAt()
      • 编码转字符:String.fromCodePoint(编码)
      • 新方法可以替代老方法转换所有字符
  2. 新增了字符的方法

  3. 新增了字符串模板(字符串的表示方式和拼接方式)

    • 反引号
    • 在反引号内使用 变 量 拼 接 ‘ {变量}拼接 ` {}`

展开运算符

  1. …符 直接展开 ,如果多维的话两个一起展开,直接变成一维

  2. 类似于解构赋值,展开复杂数据

  3. 数组和对象

    // var arr = [“hello”,2,3,4,5,“world”];

    // console.log(arr);

    // console.log(arr[0], arr[1], arr[2]);

    // console.log(…arr);

    // // alert(…arr);

    // var bigArr = [1,2,3];

    // var list = […bigArr, …arr];

    // var arr = [34,56,87,25,69];
    // ES6中取数组的最大或最小值
    // console.log(Math.max(…arr));
    // ES5中取数组的最大或最小值
    // console.log(Math.max.apply(null, arr)); 通过this指向的第二个参数值来取值
    // ES3中取数组的最大或最小值
    // 先排序,取第一个或最后一个

新增的数据类型 - Symbol

  1. Symbol是一种新的数据类型,特点类似于字符
  2. 创建:var s = Symbol(变量)
  3. 一旦创建,不可更改,不与任何数据相同,自身是相等的
  4. Symbol用来做标记量(字典量)
  5. 场景:固定的不可被改变的标记量

新增的数据结构

  1. set
    .Set 无重复列表类型
    特点:
    1.没有下标,不是按照下标存储,但是是有序的,因此不能使用下标循环遍历
    2.没有重复元素,任何元素存在唯一性,因此可以用来作去重处理,存储不重复的数据,
    3.插入速度和删除速度非常快,遍历查找速度也非常快,但是略低于键值对类型。
    4.支持方法:add(添加) delete(删除) has(查找) forEach(遍历)
    属性: size 长度,只读的,没有length,

map 是一种有长度的键值对数据类型

特点
1.hashMap 键值对的数据类型 map对象是关联型的对象,类似php中关联型的数组结构
2.具备数组的长度紧密型,又具备对象的键值对方法
3.它的获取,删除,查询,遍历速度很快
4.任何数据类型都可以作为键进行存储,对象存储用的是引用地址进行存储的

支持方法

var map=new Map();
map.set(“name”,“morty”); //1.添加元素
map.set(“age”,27);
map.delete(“name”); //2.删除键名(删除元素)
console.log(map)
//map.clear(); //3.清除掉所有数据
console.log(map.has(“age”)); //4.判断某个键是否存在 返回布尔值
console.log(map.get(“age”)) //5.获取某个键的值 27
console.log(map.values());// 6.获取所有值的列表 {“morty”, 27}
console.log(map.keys()); // 7.获取所有键的列表 {“name”, “age”}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

划水的乌贼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值