js
变量与常量
常数
值在开始时,就已经确定,在我们编写脚本过程中也不会发生改变
- 变量
与常量不同,变量的值在后面也可以通过二次声明,改变他值的大小
let a=10;
在上面这个语句中
-
let 是这个语句的声明函数
-
a是函数的变量
-
10是赋予变量a的值
变量的命名
- 变量的名称都是由下划线、字母、$、数字组成的
- 变量的开头必须是字母或者下划线、$
- 变量不能是系统的关键字或保留字
- 变量是区分大小写的
变量的使用
let a=12;console.log(a);
常量
- 常量的命名通常用全大写的英文字母
- 因为常量在脚本编写过程中无法改变,因此,我们应当在开始时就给予它相对应的值
let HELLOW=10;
const.log(HELLOW);
声明用const
运算的符号
** 函数的逻辑运算符号**
符号 | Value |
---|---|
+ | 将俩个值进行相加 |
- | 将俩个值进行减法运算 |
/ | 将俩个值进行除法运算 |
* | 将俩个值进行乘法运算 |
函数的比较运算符号
符号 | Value |
---|---|
== | 将俩个变量的值进行比较 |
! | 将俩个变量的值进行比较,不相同则返回ture |
函数
函数的重写
1.函数允许重写(提升)
函数如同变量一般,在创建之后,依然可以进行修改
function name(a)
{
return "你好呀" a;
}
我们可以对函数name进行修改、重写
function name(a)
{
return "再见啦" a;
}
我们也可以限制函数的重写
如果想限制函数的重写,在最开始时,我们就应当声明函数
let name= function (a,b)
{
return a+b
}
函数的命名
自选参数
let sum= function (a,b)
{
rreturn a+b
}
函数参数在最开始时并没有设置默认值
let sum= function (a=20,b=20)
{
return a+b
}
归并函数
将所有值都压缩到一个数组,再进行取值
sum= function (...arr)
{
return arr.reduce((p,c)=>p+c)
}
代入值的方式
console.log(sum(1,2,3))
高阶函数,便是将函数本身作为一个值
高阶函数就是操作其他函数的函数
回调函数
脚本的执行都是从上而下进行的,当我们需要再次使用某一个函数时,我们就需要用到回调函数
将一个函数存储到我们的变量中,方便我们二次调用
name=function()
{
retnrn function you()
{
return "你好"
};
}
将函数存储于某一个变量中,当我们需要使用时,便可以再次调用
let N=name();
console.log(N());
偏函数
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); //输出 10
纯函数
函数只使用自己本身带有的参数
let c=100
function sun(a,b)
{
return a+b
}
当我们在函数内部并没有引用外部变量 c 时
这个函数就是一个纯函数
常用的高阶函数
map()
此函数会将元素整理成一个新的数组,并返回
数组的元素,为数组经过函数处理之后的值
var arr= [1,2,3]
function (x)
{
return x*x;
}
arr.map(pox);
map()传入的参数是pow,即函数对象本身。
reduce()
reduce() 函数会对参数序列中元素进行累积,将数组中的元素,进行多次运算
例子:
var arr = [1, 3, 5, 7, 9];
console.log(arr.reduce((x, y) => x + y));
最后输出的结果为25
箭头函数
箭头函数的存在,是使我们的代码块变得更加的简洁变得更加明了
function name (a,b)
{
return a+b;
}
我们可以简写成
name=(a,b)=>a+b;
使用箭头函数时,注意:当有this出现时,便不要使用箭头函数
立即执行函数
想要运用一个函数,一般分为俩步
声明
调用
但是当我们学习到立即执行函数时,我们便可以俩步并成一步走
基本格式
()()
第一个括号:放的是我们的模板
像 function name(a+b)
{
}
第二个括号里面:放的是我们的参数
像(a=10,a=20)
立即执行函数,我们可以将它理解为一个块作用域
在里面声明的变量,并不会泄露到全局
补充
var 是全局的声明
let 是部分区域声明