变量
var
- 可以重复声明
- 无法限制修改
- 没有块级作用域
let
- 不能重复声明
- 变量,可以修改
- 块级作用域
const
- 不能重复声明
- 定量,不能修改
- 块级作用域
函数-箭头函数
- 如果只有一个参数,( )可以省略
- 如果只有一个return,{ } 可以省略
函数-参数
1、参数扩展/数组展开
arguments
function show(a,b,...args)
//...args 必须是最后一个
既可以收集参数,也可以展开参数
解构赋值
let [a,b,c] = [1,2,3];
let {a,b,c} = {a:6,b:7,c:8};
let [{a,b},[n1,n2,n3],num,str] = [{a:6,b:9},[2,3,4],8,'ange']
let [json,arr,num,str] = [{a:6,b:9},[2,3,4],8,'ange']
- 左右两边结构必须一样
- 右边必须是个东西
- 声明和赋值必须写在一起
数组
map 映射
一一对应
数组中的每一个元素都做同一件是,返回一个新的数组。
let arr = [3, 6, 9];
let result = arr.map(function (item) {
return item * 2
})
alert(result)
//结果弹出:6,12,18
reduce 汇总
一堆出来一个
zjz 中间值,前两个相加得到的值。常用tmp
let arr = [10,100,1000];
arr.reduce(function(zjz,item,index){
alert(zjz+','+item+','+index)
})
// 弹出结果 10,100,1
// undefined,1000,2
求和
let arr = [10,100,1000];
let result = arr.reduce(function(zjz,item,index){
return zjz+item
}) //弹出正确结果 1110
alert(result)
求平均数
let result = arr.reduce(function(zjz,item,index){
if(index !=arr.length-1){
return zjz+item
}else{
return(zjz+item)/arr.length
}
}) //弹出370
alert(result)
filter 过滤器
留一部分,删一部分
// 被3整除
let arr = [33, 64, 95,24,46,35,34];
let result = arr.filter( item=> {
if(item%3===0){
return true
}else{
return false;
}
})
//等同于 let result = arr.filter( item=>item%3 ==0 )
alert(result)
forEach 循环(迭代)
let arr = [3,6,4,8];
arr.forEach((item,index)=>{
alert(index +':'+item);
});
字符串
startWith() 以什么开头
let str = 'ange'
let a = str.startWith('a') //true
//会返回true 或 false
endWith() 以什么结尾
let str = 'ange'
let a = str.endWith('e') //true
str.endWith('.jpg') //判断文件类型
//会返回true 或 false
字符串模板
反单引号
`${value}`