批改状态:合格
老师批语:
变量使用let声明,初始化不用赋值,也可以任意更改值。
常量使用const声明,初始化必须赋值,一旦赋值,之后就不能再更新值
let name;name=1;console.log(name);const a=5;//再赋值就会报错a=6;
命名方案:js推荐使用小驼峰式
使用函数为参数或者将函数作为返回值的函数就是高阶函数
1.回调函数
document.addEventListener("click",function(){alert("hello world~");});
2.偏函数
let sum=function(a,b){return function(c,d){return a+b+c+d;}}let f1=sum(1,2);console.log(f1(3,4));
3.柯里化
//柯里化sum=function(a){return function(b){return function(c){return function(d){return a+b+c+d;}}}}//简化了调用参数let res=sum(1)(2)(3)(4);console.log(res);
4.纯函数
独立于调用上下文,返回值只能受到传入的参数影响
let sum=function(a,b){return a+b;}
let sum=function(a,b){return a+b;}//箭头函数用来简化 匿名函数 的声明let sum=(a,b)=>{a+b};
没有参数则必须有(),只有一个参数可以不写(),返回值只有一条语句可以不写return。
注意:箭头函数没有原型属性 prototype 不能当构造函数用。箭头函数中的this,始终与它的上下文绑定
js三种作用域:全局,函数,块
//块作用域
{let a=1;const B="world";}//外部无法调用console.log(a,B);
能够访问自由变量的函数就是闭包
什么是自由变量?
let num=100;//既不属于参数变量又不属于私有变量就是自由变量function add(a,b){//a,b参数变量//私有变量let t=0;return t+a+b+num;}
子函数就是闭包,闭包就是子函数
function a(){//n相对于a()是私有变量let n=10;// 这个返回的子函数就是闭包return function (){return n;}}console.log(a()());
就是再函数后跟()
//声明完直接调用(function sum(a,b){console.log(a+b);})(1,2);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号