ES6引入的新类型

一、Map(映射)

1.Map类似于对象,也是键值对的集合。但是”键”的范围不限于字符串,各种类型的值(包括对象)都可以当做键。也就是说,Object(对象)提供了”字符串-值”的对应,Map结构提供了”值-值”的对应,是一种更完善的Hash结构实现。

2.Map的构建

//使用二位数组构建Map结构
let arr = [['name','lisi'],['title','kungfu']];
let map = new Map(arr);
console.log(map);

//使用Set来构建Map结构
let set = new Set([['name','小明'],['age',20]]);
let map1 = new Map(set);
console.log(map1);

3.Map的方法

// set(key,value):设置Map的键值对
let set = new Set([['name','小明'],['age',20]]);
let map1 = new Map(set);
map1.set('sex','male');
console.log(map1); //  Map { 'name' => '小明', 'age' => 20, 'sex' => 'male' }

// get(key):读取key对应的键值,如果找不到key,则返回undefined
console.log(map1.get('name'));  //小明

//has(key) 返回一个布尔值,表示某个键是否在集合中
console.log(map1.has('age'));   //  true

// keys():返回键名的遍历器
console.log(map1.keys());

// values():返回键值的遍历器
console.log(map1.values());

// entries():返回所有成员的遍历器
console.log(map1.entries());

// forEach():遍历Map的所有成员
map1.forEach(function(value, key) {
    console.log(key, value);
});

map1.forEach((value, key) => {
    console.log(key,value)
});
二、函数

1.函数的声明

// 1.函数的声明
function f() {

}

// ES6支持默认参数的函数
function fn1(x=1,y=2) {
    return x+y

}

2.函数调用

声明函数之后使用“函数名(参数)”的形式,按顺序传递参数调用

3.函数的参数

//ES5中arguments对象的使用。定义函数时,函数默认带有arguments对象,该对象中存放的是函数的所有参数
function add(){
    let sum=0;
    for (let i = 0; i < arguments.length; i++) {
        sum+=arguments[i]

    }
    return sum
}
let result = add(1,2,3,4);
console.log(result);

4.ES6中的rest参数可以替代arguments对象。

//ES6中的rest参数
function sum(...values){
    let sum = 0;
    for (let val of values) {
        sum += val
    }
    return sum
}

console.log(sum(1,4,2));

5.匿名函数

var tsum = function (x,y) {
    return x+y
}
let sum = tsum(100,90);
console.log(sum);

注意事项:形参,形式上的参数,只是占位符。通常在定义函数时声明

​ 实参:实际的参数,在函数调用时出现在函数首部的参数。

6.箭头函数

// 1.无参的箭头函数
var fn = () => {
    return '你好'
}

//2.若函数体的语句只有一条,可以省略‘{}’
var fn = x => x+1;

//3.带有一个参数
var fn = (x) => {语句}

//4.多个参数
var fn = (x,y) => {语句}

7.高阶函数

//高阶函数,把abs函数作为参数
function diffAvg(m,n,fn){
    return fn(m-n)
}

//高阶函数的调用
let res = diffAvg(45,99,Math.abs);
console.log(res)

//fn:函数指针,指向实际参数的入口地址

8.闭包,当函数作为返回值,或者作为内部参数时,该函数就被称为闭包。闭包是能够读取其他函数内部变量的函数,可以使用函数之外定义的变量

示例:

//出租车收费问题
var basePrice = 10;  // 起步价
var baseMileages = 3;  //起步里程
function calPrice(price,mileages) {
    //计算总费用
    function totalPrice(){
        if (mileages<=baseMileages){
            return basePrice
        }
        else {
            return price*mileages;
        }

    }
    return  totalPrice()

}
var res = calPrice(3,5);
console.log(res);
三、类

1.ES5中通过构造函数创造实例对象

// ES5中通过构造函数创造实例对象
function People(pname,age){
    this.pname =pname;
    this.age = age;
}
//通过原型对象增加类的方法
People.prototype.getInfo = function (){
    return this.pname+this.age+'岁了'
}   
//创建实例对象
var person = new People('张三',20);
console.log(person);
console.log(person.getInfo())

2.ES6中类的定义:引入类的模板,使用class关键字定义类

class People {
    constructor(pname, age) {
        this.pname = pname;
        this.age = age;
    }
    getInfo(){
        return this.pname+this.age+'岁了'
    }
}

var person = new People('张飞',100);
console.log(person.getInfo());
四、JavaScript的代码规范

1.编码格式

(1)建议每条语句应该以分号结束,每行只有一条语句

(2)缩进使用2个半角空格或者4个半角空格,而不使用tab键

(3)每行仅声明一个变量,不要声明多个变量

(4)字符串尽量使用单引号

(5)符号“{”应该放在行末,表示代码块的开始,“}”应该放在行首,表示代码块的结束

2.命名规范

(1)变量推荐使用小驼峰命名法

(2)常量推荐使用大写

(3)函数推荐使用小驼峰命名法,前缀为动词

(4)类和构造函数采用大驼峰命名法(每个单词的首字母都是大写),第一个单词建议使用名词

(5)文件名建议采用下划线分割单词

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值