1.函数
定义函数:
-
正常定义
function abs(x){ if (x>=0){ return x; }else { return -x; } }//方式一
-
var定义
var abs2 =function (x){ console.log('x->'+x) for (var i =0;i<arguments.length;i++){ console.log(arguments[i]) } //手动定义异常 if (typeof x!=='number'){ throw 'not a number' } if (x>=0){ return x; }else { return -x; } }//方式二。匿名函数 //arguments是js中的一个关键字 //代表传递进来的所有的参数,是一个数组
多个参数问题
使用arguments时,包含所有的参数,有时想使用多余的参数进行一系列的附加操作,需要排除已经使用的参数
可以使用for循环进行排除,但是比较麻烦费时间
使用rest获取除了已经定义的参数之外的所有参数
function aaa(a,b,...rest){ //rest参数必须定义在最后面,必须用...标识 console.log('a->'+a) console.log('b->'+b) //最初 // if (arguments.length>2){ // for (var i =2;i<arguments.length;i++){ // // } // } //现在 console.log(rest); }
变量作用域
function gugu(){ var x=1; console.log(x) //内部函数可以访问外部函数的成员 //外部函数不能访问内部成员 function gugu2(){ var y =x+1 console.log(y) } gugu2() //报错下面 // var z =y+1; }
内外函数方位成员问题
内外函数重名问题
//内外函数重名 function xixi(){ var x=1; function xixi2(){ var x='a' console.log('inner' +x) } console.log('outer' +x) xixi2() }
总结
//假设内部函数和外部函数的变量名字相同,函数查找变量从自身函数开始
//由内向外查找,假设外部存在重名变量,则内部函数会屏蔽外部函数变量
window定义
window是自定义的一个全局变量
//由于所有的全局变量都会绑定到window上,如果不同的js'文件使用了相同的全局变量 //会产生冲突,如何减少冲突 //唯一全局变量 var GuguApp ={}; //定义全局变量 GuguApp.name = 'gugu' GuguApp.add = function (a,b){ return a+b; } //把自己的代码全部放入自己定义的唯一空间之中,降低全局命名的的冲突问题
let关键字
//使用let关键字,解决局部作用域冲突问题 function aa(){ for (let i = 0; i < 99; i++) { console.log(i) } console.log(i+1); //Uncaught ReferenceError: i is not defined }
常量
//在es6之前,用大写字母定义的变量默认设定为常量 //只靠个人习惯 //es6中引入常量关键字const const PI = "3.14" // PI = '123'
方法
function getAge(){ var now =new Date().getFullYear(); return year-this.birth; } var gugu = { name:'GU', birth:2000, //方法 age:function (){ var year = new Date().getFullYear(); return year-this.birth; } } //在js中apply可以控制this的指向 getAge().apply(gugu,[])//this指向gugu这个对象,参数为空
标签:function,console,函数,day34,var,return,log From: https://www.cnblogs.com/GUGUZIZI/p/16936986.html