变量
var
- 1.可以重复声明、
- 无法限制修改-,
- 没有块级作用域
let
不能重复声明,变量-可以修改,块级作
const
不能重复声明,常量-不能修改,块级作
函数——箭头函数function 名字(){}()=>{}
1.如果只有一个参数,()可以省
2.如果只有一个return,{}可以省
()——只有一个参数{}——只有一个return
1 <script> 2 /*原来的写法*/ 3 let arr = [1, 2, 3, 10, 50, 21, 52] 4 arr.sort(function (n1, n2) 5 { 6 returt n1-n2; 7 }) 8 alert(arr) 9 10 /*简写*/ 11 let arr1 = [1, 2,212, 3, 10, 50, 21, 52] 12 arr1.sort((n1, n2)=> { 13 return n1-n2 14 }) 15 alert(arr1) 16 </script>
函数的参数
1,收集剩余的参数
function show(a,b,...args)
...args后面的参数会收集起来,它是一个数组参数不固定
参数(Parameter)必须是最后一个
2,展开数组
let arr1=[1,2,3]
let arr1=[4,5,6]
let arr=[...arr1,...arr2]
alert(arr)
展开后的效果,跟直接把数组的内容写在这儿一样
默认参数
function show(a,b=2,c=50) {
return a+b+c;
}
alert(show(12))
结果:74
//未写入的参数会直接拿这儿用
结构赋值
1 //1.左右两边结构必须一样 2 //2.右边必须是个东西(json,数组..) 3 //3.声明和赋值不能分开(必须在一句话里完成) 4 let [a,b,c]=[12,5,8]; 5 6 let {a,b,c}={a: 12, b: 5, c: 8}; 7 8 let [{a,b},[n1,n2],num,str]=[{a:12,b:20},[50,100],2500,"张三"]; 9 10 console.log(a,b,n1,n2,num,str)
甚至可以不用临时变量解决“交换两个变量”这个经典问题:
var x = 10, y = 20; [ y, x ] = [ x, y ]; console.log( x, y ); // 20 10
里面的东西在复杂也是ok的