arguments ,函数扩展运算符、形参默认值、参数和返回值,变量
函数arguments
-
因为 console.log(); 也是通过()来调用的,所以 log 也就是一个函数
-
log 函数的特点
可以接收一个或多个参数
console.log(1);//1
console.log(1,2,3);//1,2,3
console.log(1,2,3,4);//1,2,3,4
3.log 函数可以接收一个或者多个函数吗?
log 函数 内部的实现原理用到了arguments
4.arguments 的作用?
用于保存所有传递给函数的实参。
function number(){
//注意:每一个函数内部都有一个叫做arguments的东西。
//arguments 其实就是一个伪数组。
console.log(arguments);
//通过数组的方式
console.log(arguments[0]);//5
console.log(arguments[1]);//10
}
number(5,10);
函数中的arguments
function num(){
let sum=0;
for(let i=0; i<arguments.length;i++){
let res=arguments[i];
console.log(res);//2 4 6
//sum = 0 + 2 ; sum = 2 ;
//sum = 2 + 4 ; sum = 6 ;
//sum = 6 + 6 ; sum = 12 ;
sum += res; // sum = sum + res ;
}
//返回值
return sum;
}
let msg = num (2,4,6);
console.log(msg); // 12
函数扩展运算符
函数扩展运算符可以写在等号(赋值运算符)的左边和右边。
1.扩展运算符在等号左边时,就是 将剩余的数据打包到一个新的数组里面。
let [a,...b] = [1,2,3];
//a=1;
//b=[2,3];
注意点:扩展运算符只能写在最后面。(不可以写在最前面和中间的位置)
2.扩展运算符在等号右边时,就是 将数组里面的数据解开。
let arr1=[1,3,5];
let arr2=[2,4,6];
let arr3 = [...arr1,...arr2];
// let arr3 = [1,3,5,2,4,6];
-
扩展运算符 在函数的形参列表 中的作用。
将传递给函数的所有实参打包到一个数组中。
注意点:和扩展运算符在左边一样,只可以写在形参列表的最后。
function number(s,...values){
console.log(s);//5
console.log(values);//15
}
number(5,15);
扩展运算符写在形参列表的最后 接收剩余的所有数据
获取到的结果 和arguments获取到的数据一模一样(不同的途径结果一样)。
function num(...values){
let sum=0;
for(let i=0; i<values.length;i++){
let res=values[i];
sum += res;
}
//返回值
return sum;
}
let msg = num (5,6);
console.log(msg); // 11
函数形参默认值
1.在ES6之前可以通过逻辑运算符来给形参指定默认值。
格式为:条件A || 条件 B
假如条件 A 成立,那么就会返回条件 A
假如条件 A 不成立,无论条件 B 是否成立,都会返回条件B .
从ES6开始,可以直接在形参后面通过 = 指定默认值。
function number(a="开开心心",b="快快乐乐"){
console.log(a,b);
}
number();
注意:ES6 开始的默认值还可以从其他的函数里面获取。
function number(a="开开心心",b=num()){
console.log(a,b);
}
number();
function num(){
return "平平安安"
}
函数作为参数和返回值
在JavaScript中 函数 是可以作为 参数的。
注意点:在JavaScript中函数是可以嵌套定义的,但是在其它编程语言中函数是不可以嵌套定义的。
//将函数作为其他函数的返回值
function res(){
let msg=function(){
console.log(123);
}
return msg;
}
let fn=res();// let fn=res;
fn();
JavaScript 变量
怎么样去修改变量里面存储的数据
我们只需要再一次给变量直接赋值就可以了
简单的定义一个变量
let get;
我们可以往变量中存储数据
get = 666;
我们可以从变量中取出存储进去的数据
console.log(get); // 666
什么叫做变量的初始化?
在JavaScript中第一次给变量赋值,称之为“变量的初始化”。
-
怎么去修改变量中存储的数据
在JavaScript里面如果想要修改变量中存储的数据,那么我们只需要再次给变量直接赋值就可以了。
get = 888; console.log(get); // 888
2.在JavaScript里面第一次给变量赋值,就称之为“变量的初始化”
let res; res = 555; // 变量的初始化 res = 999; // 不是变量的初始化
3.假如我们声明的一个变量没有进行初始化,那么它里面存储的数据是什么呢?
在JavaScript中如果我们定义了一个变量,但是没有进行初始化,那么这个变量里面存储的数据为undefined。
let msg; console.log(msg) ; // undefined
4.我们可以有很多形式对变量进行初始化处理
-
可以先定义变量,然后再对变量进行初始化
let num ; num 333 ;
-
也可以在定义变量的时候 ,同时对变量进行初始化
let num1 = 123 ;
5.定义变量的其他格式
我们可以单独定义一个变量,也同时定义俩个或三个变量…
同时定义多个变量的格式为:
let 变量名称1,变量名称2;
let res,res1; // 同时定义俩个变量 let msg,msg1,msg2; // 同时定义三个变量
6.初始化变量的其他格式
注意:如果在企业开发中对多个变量初始化的值都是一样的,那么我们可以通过
变量名称1 = 变量名称2 = 变量名称3 … = 初始化值;
(存在一定的弊端,如果后期需要更改,工序太多。)
let num ; let num1 ; // 格式一:num = 111 ; num1 = 333 ; // 格式二: num = num1 = 666; console.log(num) ; // 666 console.log(num1) ; // 666
7.定义多个变量的同时分别给多个变量进行初始化
// 方式一: let res ; let res1 ; res =123; res1 = 321; // 方式二:(优化) let num = 567, num1 = 369 ; console.log(num) ; // 567 console.log(num1) ; 369
-