变量和常量的差别
<body>
<script>
//声明变量
let usrName;
//给变量赋值
let usrName="手机";
//更新变量
let usrName="电脑";
// 变量可以声明、赋值和更新
//声明常量
const unit=3699;
//常量声明赋值完后不能更新,不然会报错
</script>
</body>
变量名只能是字母,数字,下划线,$,并且不能是数字开头,严格区分大小写,不能使用关键字和保留字,推荐驼峰命名法,常量全部大写
函数与匿名函数区别
<body>
<script>
//函数用function声明
function getName(name){
return"你好啊"+name;
}
console.log(getName("老师"));
//这样声明函数会函数提升,调用变量语句不管在上还是在下都管用
//用匿名函数解决这个问题,把函数保存在变量中
let sum=function(name){
return"你好啊"+name;
}
console.log(getName("老师"));
</script>
</body>
箭头函数
<body>
<script>
//用匿名函数来声明函数
let scm=function(a,b){
return a+b;
}
//简化成匿名函数时function就不用写了
sum=(a,b)=>{
return a+b;
}
//如果匿名函数里面就像上面一样就一句就不用谢return和大括号
sum=(a,b)=>a+b;
//如果就一个参数的话参数位置的小括号也不用加了
let tips=scr=>console,log(scr);
tips("欢迎你的到来");
//但是注意,没有参数就必须加上小括号占位子
</script>
</body>
闭包
<body>
<script>
//变量分全局变量和私有变量
let cum=100;
//这是全局变量,可以全局访问
function a(){
let n=50;
}
//这个函数里面的n是私有变量,在函数外面是访问不到里面的函数的
//这时想访问函数里面的变量就得用闭包
function a(){
let n=50;
return function(){
return n;
}
console.log(a()());
//n相对于里面的函数体说是全局变量,想对于外面的a来说是私有变量
//这样访问到函数里面的变量
}
</script>
</body>
四种高阶函数
<body>
<script>
//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.5);
//然后声明多变的参数
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.纯函数,完全独立,返回值只能受传入参数影响
function sum(a,b){
console.log(a+b);
};
</script>
</body>