nodejs
一、ES6基础
ES6 ECMAScript2015
1.块级作用域
- let const
声明的变量不存在变量提升,同一个作用域下不允许重复申明同一个变量,let在全局作用域的变量也不是全局变量。
{ 代码块 }
在括号之间语句就是块级作用域,例如:if for while swich
块级作用域下let和const声明的变量或者常量都 是局部的,外部无法访问
练习:
计算1~100之间所有整数的和,使用let声明变量
for (let i=0,sum=0;i<=100;i++){
sum+=i;
}
console.log(sum);//不能访问
2.参数增强
可以给形参设置默认值
function add(a,b=0,c=0){//形参设置默认值
a=a|| 0;//短路逻辑
b=b|| 0;//用if也可以,如果三个参数都没传也可以运行
console.log(a+b+c);
}
add(8000,5000,1000);
add(8000,5000);//员工没有其它工资如:出差补助等
add(8000);//员工只有基本工资
add(0);//员工只有基本工资
3.箭头函数
简化了匿名函数,但不等价于匿名函数
sort((a,b)=>{return a-b;})
如果箭头函数的函数体中只有一行并且是return形式,可以进一步简化sort((a,b)=>a-b)
//箭头函数
var arr=[23,5,9,43,57];
arr.sort(function(a,b){
return a-b;
});
console.log(arr);
arr.sort((a,b)=>{return a-b; });//箭头函数
arr.sort((a,b)=>a-b);//只有一行,且是return的,可以这么简化版
console.log(arr);
练习
使用函数表达式创建函数,使用箭头函数形式,返回任意两个数字的最大值
let getMax=(a,b)=>{return a>b ? a : b;}
let getMax=(a,b)=>a>b ? a : b;
console.log(getMax(3,2));
4.模板字符串
` `一对反引号就是模板
\` 中间就是模板字符串¥{表达式}\`
模板字符串用于控制字符串格式,解决了字符串的拼接问题
let ename='葫芦';
let sex=0;
let phone='18111111111';
let addr='重庆市高新区巴福';
console.log(`
姓名:${ename}
性别:${sex==0 ? '男' :'女'}
电话:${phone}
`)
练习
假设从后端获取 了一条商品的数据,格式为对象,包含的属性有编号、标题、价格、是否在售(1/0)、打印出以下效果:
编号:
标题:
价格:
是否在售:是
var laptop={
id:2,
title:'小米笔记本',
price:3999,
isOline:'1'
}
console.log(`
编号:${laptop.id}
标题:${laptop.title}
价格:${laptop.price.toFixed(2) }元
是否在售:${laptop.isOline==0 ? '不':'是'}
`)