我是靠谱客的博主 迅速导师,最近开发中收集的这篇文章主要介绍arguments、作用域(变量、词法)、变量提升、函数内部this指向、匿名函数和立即执行...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

01.arguments

1.参数个数不确定!!!
2.arguments对象

存放函数内部所有的参数

arguments.length 记录着所传递参数的个数

arguments 存放参数的形式类似于数组,但是arguments不是数组

arguments 取出里面存放的数据,通过下标,下标是从0开始的。arguments[0];

如果把arguments存放的数据全部取出,需要循环遍历!!!

1.查看arguments

function fn(){
   console.log(arguments);
}
fn(2,2,3);

2.获取参数个数

function fn(){
  console.log(arguments.length);
}
fn(2,3,32,32);

3.取arguments里面的值(索引,从0开始)

function fn(){
console.log(arguments[3]);
}
fn(2,3,4,23);

02.arguments练习

1.定义一个加法功能,计算传入的所有数字的和 
function fn(){
var sum = 0;
//循环遍历
for(i = 0 ; i < arguments.length ; i++){
sum += arguments[i];
}
return sum;
}
console.log(fn(1,2,3,4,4,5));
2.定义一个功能getMax,传入任意个数字,返回最大值
function getMax(){
   //假设arguments[0]最大
   var maxNum = arguments[0];
   for(i = 1 ; i < arguments.length ; i++){
       if(maxNum < arguments[i]){
           maxNum = arguments[i];
      }
  }
   return maxNum;
}
console.log(getMax(3,4,24,534,2,2,4));
3.定义一个运算功能,参数为(x,y),当传入1个数字时,求x的阶乘,如果传入两个数字,求x的y次方
function fn(x,y){
   if(arguments.length == 1){
       var product = 1;
       for(i = 1 ; i <= x ; i++){
           product *= i;
      }
       return product;
  }
   return (Math.pow(x,y));
}
//console.log(fn(2));
console.log(fn(3,2));

03.作用域思考

//思考1:
var a = 10;
function fn(){
   console.log(a);   //10
}
fn();

//思考2:
var a = 10;
function fn(){
   var a = 20;
   console.log(a);    //20
}
fn();

//思考3:
var a = 10;
function fn(){
   var a = 20;
   console.log(a);    //20
}
console.log(a);     //10
fn();


//思考4:
function fn(){
   var a = 10;
   console.log(a);           //10
}
fn();
console.log(a);      //a is not defined;

//思考5:
var a = 10;
function fn(){
   console.log(a);     //变量提升了 undefined;
   var a = 20;
   console.log(a);    //20
}
fn();
//执行过程
function fn(){
   var a;
   console.log(a);     //undefined;
   a = 20;
   console.log(a);   //20
}

//思考6
var a = 10;
function outerFn(){
   console.log(a);   //undefined;
   var a = 20;
   function innerFn(){
       var a = 30;
       console.log(a);   //30
  }
   innerFn();
   console.log(a);   //20
}
outerFn();
console.log(a);    //10
//执行过程:
var a = 10;
function outerFn(){
   var a;
   console.log(a);   //undefined;
   a = 20;
   function innerFn(){
       var a = 30;
       console.log(a);   //30
  }
   innerFn();
   console.log(

转载于:https://www.cnblogs.com/ljp1997/p/11442765.html

最后

以上就是迅速导师为你收集整理的arguments、作用域(变量、词法)、变量提升、函数内部this指向、匿名函数和立即执行...的全部内容,希望文章能够帮你解决arguments、作用域(变量、词法)、变量提升、函数内部this指向、匿名函数和立即执行...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部