js函数:封装了很多功能
1、js函数定义的方式
(1)普通方式
语法:function 函数名(参数列表){函数体}
示例:
function method(){ //定义函数
alert("xxx");
}
method(); //函数调用
(2)匿名函数(经常使用)
语法:function(参数列表){函数体}
示例:
var method = function(){
alert("yyy");
};
method();
var任何类型都可以接收,所以也可以接收一个函数类型
(3)对象函数
语法:new Function(参数1,参数2,...,函数体);
注意:参数名称必须使用字符串形式、最后一个默认是函数体且函数体需要字符串形式
示例:
var fn = new Function("a","b","alert(a+b)");
fn(2,5);
2、函数的参数
(1)形参没有var去修饰
因为var可以定义所有类型的数据
(2)形参和实参个数不一定相等
(3)arguments对象 是个数组 会将传递的实参进行封装
function fn(a,b,c){
//var sum = a+b+c;
//alert(sum);
//arguments是个数组 会将传递的实参进行封装
for(var i=0;i<arguments.length;i++){
alert(arguments[i]); //1,2,4,8
}
}
fn(1,2,4,8);
3、返回值
(1)在定义函数的时候不必表明是否具有返回值
(2)返回值仅仅通过return关键字就可以了,return后的代码不执行
function fn(a,b){
return a+b;
//alert("xxxx");
}
alert(fn(2,3));
4、js的全局函数
全局函数:js为我们已经定义好的函数,不需要对象.函数名()调用,直接就可以使用
(1)编码和解码
encodeURI() decodeURI()
encodeURIComponet() decodeURIComponent()
escape() unescape()
三者区别:
进行编码的符号范围不同吧,实际开发中常使用第一种
示例:
var url = "http://www.baidu.com?name=zhangsan&password=123";
alert(encodeURI(url));
//http://www.baidu.com?name=zhangsan&password=123
alert(encodeURIComponent(url));
//http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhangsan%26password%3D123
alert(escape(url));
//http%3A//www.baidu.com%3Fname%3Dzhangsan%26password%3D123
(2)强制转换
Number()
String()
Boolean()
(3)转成数字
parseInt()
parseFloat()
(4)eval()方法
将字符串当作脚本进行解析运行
//var str = "var a=2;var b=3;alert(a+b)";
//eval(str); //5
function print(str){
eval(str);
}
print("自定义逻辑");