1.定义方式
标准格式:
//1.标准式
function demo1(){
console.log("hello demo1");
}
demo1();
//2.使用function构造函数定义
var demo2 = new Function('console.log("hello demo2");');
demo2();
//3.使用表达式的方式定义(匿名函数)
var demo3=function(){
console.log("hello demo3");
}//demo3是一个变量,它的值为函数,所以可以当做函数来使用
demo3();
//4.使用函数自调用定义
(function(){ console.log("hello demo4");})();
2.参数
//arguments参数
function fun(){
console.log(arguments);
//遍历输出所有参数
for(i in arguments){
console.log(arguments[i]);
}
}
fun(10,20,30,40);
●arguments对象
。在函数代码中,使用特殊对象arguments, 开发者无需明确指出参数名,就能访问它们。
。arguments是一 个对象,是一个伪数组,argument[索引—>实参的值
。也可以访问这个值,即第一个参数的值(第一 个参数位于位置0,第二个参数位于位置1,依
此类推)。
。arguments.lengh–>是实参的个数
3.返回值
。如果一个函数中有return ,那么这个函数就有返回值
。如果一个函数中没有return,那么这个函数就没有返回值
。如果一个函数中没有明确的返回值,那么调用的时候接收了,结果就是undefined
(没有明确返回值:函数中没有return或函数中有return,但是return后面没有任何内容)
。函数内容执行遇到return,则立刻执行返回,且下面的代码是不会被执行的
function fun(m){
console.log("aaaa");
if(m>=10){
return;
}
console.log("bbbb");
}
fun(8);
fun(10);
console.log(fun(10));//undefined
function demo(){
console.log("aa");
return "cc";
}
console.log("bb"+demo());//aa
//bbcc
4.变量作用域
由于函数的出现导致了变量的定义分为函数内定义和函数外定义,即全局和局部变量
。全局变量:在函数外使用var声 明的变量就是全局变量,全局变量可以在页面的任何位置使用
■全局变量,如果页面不关闭,那么就不会释放,就会占空间,消耗内存。
。局部变量:在函数内使用var关键字定义的变量是局部变量,即出了函数外边无法获取。
。隐式全局变量:没有使用var声明的变量,就叫隐式全局变量,在函数外可以获取到。
■全局变量是不能被删除的,隐式全局变量是可以被删除的(使用delete)
■定义变量使用var是不会被删除的,没有var是可以删除的
。函数外面定义的变量是全局变量,函数内也可以直接使用,在函数内部没有使用var定义的变量则为隐式全局变量。
5.常用内置函数
escape( //字串编码
unescape() //字串反编码
*eva1O //将参数字符串作为脚本代码来执行。
*isNaNO
// is not a number (不是一个数值)
*parseInt()
*parseF1oatO
//escape字串编码 unescape 反字串编码
var url = "http://www.***.com/a.html?name=张三&age=20";
console.log(url);
url2=escape(url);
console.log(url2)
console.log(unescape(url2));
//eval将参数字串作为脚本代码来执行
var str = "var uname="张三",age=20;";
eval(str)
console.log(uname);