js基础 函数相关练习题(二)

1、匿名函数
(1)将匿名函数赋给fn变量,这时候fn就是匿名函数的函数名

var fn = function(num1,num2){
  var sum = num1 + num2;
  console.log(sum);  //3
};
fn(1,2);

(2)直接定义匿名函数并自调用

(function (){
  console.log(1+2);   //3
})();

(3)匿名函数的应用:回调函数

function fn(num1,num2){
  console.log(num1()+num2()); //3
};
fn(function(){return 1;},function(){return 2;});

//自调函数
(function (num1,num2){
  console.log(num1+num2);    //3
})(1,2);

(4)匿名函数的应用:自调函数

(function (num1,num2){
  console.log(num1+num2);    //3
})(1,2);

(5)利用自调函数完成当html页面加载完毕后的初始化工作,该初始化完成在console中输出“it begin","it end"

(function(n1,n2){
  console.log(n1+','+n2);
})('"it begin"','"it end"');  //"it begin","it end"

2、arguments对象
//每个函数都有一个arguments属性,此属性只能在函数执行体内使用。
//arguments属性中保存着当前函数接收到的所有实际参数,故可以使用arguments属性处理可变的参数。
//arguments属性:length,callee //length:返回实际传入的参数的个数 

//callee返回当前函数的引用(匿名函数可以使用该属性实现递归调用)

(1)定义一个add()函数,使用arguments对象计算该方法接收到的所有参数的计算和

function add(){
  var sum = 0;
  for(var i=0;i<arguments.length;i++){
    sum += arguments[i];
  };
  return sum;
};
var res = add(1,2,3,1,5);   //12
console.log(res);

(2)定义calc方法,传入两个数时,做加法。传入1个数时,求平方。

function calc(){
  if(arguments.length==2){
    var sum =arguments[0]+arguments[1];
	return sum;
  }else{
     var res1 = arguments[0]*arguments[0];
	 return res1;
  };
};
var res2 = calc(1,2);
var res3 = calc(2);
console.log(res2);    //3
console.log(res3);    //4

3、全局函数

//encodeURI()函数对统一资源标识符进行编码
//decodeURI()函数对使用encodeURI()编码后的字符串进行解码

var uri = 'http://www.baidu.com/k/java 编程思想';
var uri2 = encodeURI(uri);
console.log(uri2);
//编码结果为:http://www.baidu.com/k/java+%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3
var uri3 = decodeURI(uri2);
console.log(uri3);
//解码结果为:http://www.baidu.com/k/java 编程思想

//eval()函数用于执行以string形式出现的js代码
//eval()函数也可用于将JSON字符串解析为js对象 eval(prompt('请输入正确的js代码'));
//输入:console.log('a');
//浏览器控制台打印:a

(1)请用户输入一个搜索关键字,控制台输出生成的编码后的url地址

var str1 = prompt('请输入搜索关键字');
var str2 = encodeURI(str1);
console.log(str2);
上一篇: js基础 函数相关练习题(一)
下一篇: js基础 对象相关练习题
作者邮箱: 203328517@qq.com