首页 > 其他分享 >day34 函数

day34 函数

时间:2022-11-29 22:58:27浏览次数:31  
标签:function console 函数 day34 var return log

1.函数

定义函数:

  1. 正常定义

 
function abs(x){
     if (x>=0){
         return x;
     }else {
         return -x;
     }
 }//方式一

 

  1. 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

相关文章