今天所学心得、笔记
1、
//变量与常量的区别
// 变量定义后,可以随时修改它的值;
let price = 100;
price = 200;
console.log(price);
//常量定义时就必需赋值,其后也不能修改它的值
const __ROOT__PATH = 'E:/php/www/';
// __ROOT__PATH = 'E:/php/www/public'; //不允许修改常量的值,会出报错
console.log(__ROOT__PATH);
代码运行结果:
" class="reference-link">
2、变量与常量的区别
//函数、匿名函数的区别
// 1、函数定义后,可以在函数的前后都能调用,函数可以自行提升;
// 函数可以被重写;
// 2、匿名函数定义后,只能在匿名函数后调用;
// 将匿名函数赋值给常量,匿名函数将不能被重写;
console.log(getName('周工'));
function getName(username) {
return '我的名称是:' + username
}
function getName(username) {
return '(被重写的函数)我的名称是:' + username
}
const getName1 = function (username) {
return '我的名称是:' + username
}
console.log(getName1('周工1'));
代码运行结果:
" class="reference-link">
3、箭头函数的参数特征
// 箭头函数:用来简化“匿名函数”的声明
let sumjt = (a, b) => {
return a + b;
}
console.log(sumjt(1, 2));
//如果函数体只有一句话,可以不写return
sumjt = (a, b) => a + b;
console.log(sumjt(10, 20));
// 如果只有一个参数,可以不用小括号
let tips = str => console.log(str);
tips('大家好!我是PHP初学小白......');
// 如果没有参数,小括号不参省略
tips = () => console.log("Hi,各位同学,你们好!!!");
tips();
代码运行结果:
" class="reference-link">
4、闭包原理与实现
// 闭包,访问不同作用域的变量(私有变量);
// 取得函数a()中的变量n ,(理解:返回的子函数就是闭包);
//代码中,由于f5函数中的变量 a,被闭包函数引用,调用完成后f5函数不会关闭,
//会继续保存在内存中,当下一次被调用时 a 的值会被继续累加,所以当调用三次
//f5函数后,a 的值是:3;
//所以闭包函数非常消耗内存,使用中要有规划的使用;
function f5() {
let a = 1;
return function () {
return a++;
}
}
let f6 = f5();
console.log(f6());
console.log(f6());
console.log(f6());
代码运行结果:
" class="reference-link">
5、四种高阶函数
// 高阶函数:使用函数作为参数,或将函数作为返回值的函数,叫高阶函数
// 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、柯里化(currying),简化函数调用
let sum1 = function (a) {
return function (b) {
return function (c) {
return function (d) {
return a + b + c + d;
}
}
}
}
console.log(sum1(1)(2)(3)(5));
// 4、纯函数,不使用外部引用的函数,叫纯函数
function add(a, b) {
return a + b;
}
console.log(add(10, 20));
代码运行结果: