变量声明
- var
- 可以从新声明
- 无法限制修改
- 没有块级作用域
- let
- 不能重复声明
- 变量,可以修改
- 有块级作用域
- const
- 不能重复声明
- 常量,不能修改
- 有块级作用域
箭头函数
//普通函数
let show = function(a,b){
alert(a,b)
}
//箭头函数
let show = (a,b) => {
alert(a,b)
}
- 如果只有一个参数,()可以省略
let show3 = a =>{
alert(a);
}
- 如果只有一个return,{}可以省略
let show4 = a => a*2;
扩展运算符 ...
- 扩展运算符有展开数据和收集数据的作用
function show (a,b,...args){
alert(a);
alert(b);
alert(args);
}
show(1,2,3,4,5,6)
let arr1 = [1,2,3]
let arr2 = [4,5,6]
console.log(...arr1,...arr2)
- 一个小例子
let now = (...args) =>{
now1(...args)
}
let now1 = (a,b) => {
console.log(a+b)
}
now(1,2)
解构赋值
1、左右两边结构必须一样
2、右边必须是个东西
3、声明和赋值不能分开(必须在一句话里完成)
let [a,b,c] = [1,2,3]
console.log(a,b,c)
let {a1,b1,c1} = {a1:12,b1:34,c1:56}
console.log(a1,b1,c1)
eg
let [json,arr,num,str] = [{a:1,b:2},[3,4,5],12,'lei']
console.log(json,arr,num,str)
数组的新方法 map(映射)
let arr = [12,5,8]
let result = arr.map(item => item*2)
alert(result)
eg:
let score = [11,68,70,35,61,59,99,88,100];
let result = score.map(item => item>=60?'及格':'不及格')
alert(score);
alert(result);
数组新方法 reduce(汇总)
三个参数:临时结果,当前变量,当前位置
let arr = [1,2,3,4,4,5,5,7]
let result = arr.reduce((tmp,item,index)=>tmp+item)
alert(result)
- eg:求平均数
let arr = [2,3,1,4];
let result = arr.reduce((tmp, item) => tmp + item) / arr.length;
alert(result)
let result = arr.reduce((tmp, item) => tmp + item)
alert(result/arr.length)
过滤器 filter(过滤器)
let arr = [1,2,3,4,5,6,7,8,9]
let result = arr.filter(item => item%3 == 0)
alert(result)~~~
forEach 循环(迭代)
let arr = [1,2,3,4,5]
arr.forEach((item,index) => {
alert(item);
})
字符串新方法strtsWith
let str = 'http://www.wangleilei.com'
if(str.startsWith('http://')){
alert('普通网址')
}else if(str.startsWith('https://')){
alert('加密网址')
}else{
alert('其他')
}
字符串新方法endsWidth
let str = '1.jpg'
if(str.endsWith('.txt')){
alert('文本文件')
}else if(str.endsWith('.jpg')){
alert('图片')
}else{
alert('其他')
}
模板字符串(反引号 )
let title = '标题'
let content = '内容'
let str = `这是一个模板字符串
这是标题:${title}
这是内容:${content}`
console.log(str);