我是靠谱客的博主 迅速导师,最近开发中收集的这篇文章主要介绍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指向、匿名函数和立即执行...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复