1.定义变量
let 定义的变量不会被变量提升,const 定义的常量不能被修改,let 和 const 都是块级作用域
var: 可以重复申明,无法限制修改,没有块级作用域
let: 不能重复申明,变量可以重新赋值,块级作用域
const:不能重复申明,常量不可重新进行赋值,块级作用域
console.log(food); // undefined
var food= 'apple';
// 上面的代码相当于
var food;
console.log(food);
food = 'apple';
// 而 let 就不会被变量提升
console.log(food); // food is not defined
let food = 'hello';
var yourName= "yang";
yourName= "wang";
console.log(yourName); // wang
const yourName= "yang";
yourName= "wang"; // Assignment to constant variable.
console.log(yourName);
2.变量解构赋值
let a= 0;
let b=1;
let c = 2;
// 相当于 let [a,b,c] = [0,1,2]
// 字符串解构
const [a,b,c,d] = yang";
// 相当于 a=y b=a c=n d=g
// 对象解构
let {a, b, ...demo} = {a: 1, b: 2, c: 3, d: 4};
// 相当于 a = 1 // b = 2 // demo = {c: 3, d: 4}
3.模板字符串
es5字符串拼接
let jspang='技术胖';
let blog = ' 我是你的老朋友'+jspang+' ';
es6 字符串拼接
反引, 变量,以及标签的使用
let jspang='技术胖';
let blog = ` 我是你的老朋友${jspang}。`;
运算符的使用
let a=1;
let b=2;
let result=`${a+b}`;
4.箭头函数
箭头函数的this指向上一层,上下文决定其this
基本语法:参数 => 函数体
函数不带{}
var add =(a,b=1) => a+b;
console.log(add(1));
函数带{}
var add =(a,b=1) => {
console.log('jspang')
return a+b;
};
console.log(add(1));
箭头函数还有有两个特性:
如果只有一个参数,“()”小括号可以省;
如果只有一个return, “ { } ”花括号可以省
/*let show=function(a){
return a*2;
}*/
//可以简写成
let show=a=> a*2;
alert(show(12))
5.Object.assign( )合并对象
var a={a:'jspang'};
var b={b:'技术胖'};
var c={c:'web'};
let d=Object.assign(a,b,c)
console.log(d); // {a: "jspang", b: "技术胖", c: "web"}
对象浅复制
let formData = Object.assign({}, row);
6.数组扩展
map reduce filter forEach
map
//map 映射:一个对一个
let arr=[1,2,3];
let result=arr.map(function(item){
//alert(item)
return (item*2)
})
alert(result) // 2,4,6
//可以写成箭头函数
let arr=[1,2,3];
let result=arr.map(item=>item*2);
alert(result) // 2,4,6
//在写一个应用 let score=[90,50,58,60];
let result=score.map(item=>item>=60?"及格":"不及格");
alert(result) //及格,不及格,不及格,及格
filter
// 过滤
//求能被2整除的
let arr=[22,12,21,11];
let result=arr.filter(item=> item%2==0)
alert(result) //22, 12
forEach
forEach — 循环(迭代)
let arr=[2,4,6];
arr.forEach((item,index)=> {
alert(index+":"+item)
}); // 0:2 // 1:4 // 2:6
reduce
//reduce 汇总 一堆出来一个
// 总和
var arr=[80,20,50];
let result=arr.reduce(function(tmp,item,index){
//alert(tmp+','+item+","+index) 三个参数分别代表:中间结果、每次的数、下标
return tmp+item;
})
alert(result) // 150
//求平均数
let result =arr.reduce(function(tmp,item,index){
//不是最后一次
if(index!=arr.length-1){
return tmp+item; //先求和
} else {
return (tmp+item)/arr.length; //再求平均数
}
})
alert(result) // 50
7. import、export
1.模块化管理中一个文件就是一个模块,export可以导出多个方法和变量,export default只能导出当前模块,一个js文件中只支持出现一个
2.export default是唯一的,导出没有{},如export default a,import a from
export可以是多个,且要加{},如export {a,b},import {a,b} from