ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

函数

2022-06-28 20:36:36  阅读:148  来源: 互联网

标签:return 函数 作用域 window abs 参数


一,函数的定义

绝对值函数:

  方式一:

  function abs(x){

  if(x>=0){

    return x;

  }else{

    return -x;  

  }

}

一旦执行到return代表函数结束,返回结果!如果没有执行return,函数执行完也会返回结果,结果就是NaN

  方式二:

  var abs=function(x){

  if(x>=0){

    return x;

  }else{

    return -x;  

  }

}

function(x){....}是一个匿名函数,但是可以把结果赋值给abs,通过abs就可以调用函数

方式一和方式二等价

  调用函数:

abs(-10)  //10

 

  参数问题:

JavaScript可以传任意个参数,也可以不传递参数

arguments是js免费赠送的关键字,代表传递进来的所有参数, 是一个数组

 ===========

 

 可以看到,真正用到的参数是第一个12,后面的所有参数都打印了一遍,如果我们想使用后面的参数就要加判断条件

ES6新特性里引入了rest关键字,用法如下:

 

 

 ===============

 

 可以看到,除了使用的a,b,rest表示其他未使用的参数数组,打印出来,而argumens是打印所有的参数。

rest参数只能写在最后面,必须用...标识。

 

二,变量的作用域

   在JavaScript中,var定义变量实际是有作用域的

假设在函数体中声明,则在函数外不可以使用(可用闭包实现)

 

 

   如果两个函数使用了相同的变量名,只要在函数内部,就不冲突

 

 

   内部函数可以访问外部函数,反之不行

 

 

   

  提升变量作用域

    等价于 

结果为

说明JavaScript执行引擎自动提升了y的声明,但没有提升y的赋值,养成规范,所有变量定义都写在函数头部

 

  全局函数

 

 

 

  全局对象window

默认所有的全局变量,都会自动绑定在window对象

 

 

   JavaScript实际上只有一个全局作用域,任何变量(函数也可以视为变量),假设没有在函数作用范围内找到,就会向外查找,如果在全局作用域没有找到,则会报错。

  由于我们所有的全局变量都会绑定到我们的window上,如果不同js文件,使用了相同的全局变量,就会冲突

 

   把自己的代码全部放入自己定义的唯一空间名字中,降低命名冲突问题

  

  局部作用域let

 

 

 这里用var定义i,在出了循环,i还会输出101,但是用let,除了循环,就会报错

 

 

 建议使用let去定义局部作用域变量

 

  常量const

在ES6之前,这么定义常量:

  只要用全部大写字母的变量就是常量,建议不要修改

在ES6引入常量关键字:const,是不可修改的

 

三,方法

定义方法:

 

 ======调用

 

 如果我们拆开写:

 

 ==========调用,一个是直接调用age,一个是直接掉用getAge

 

 因为this关键字在对象中是指的对象,,所以有birth属性,但是在对象外面,this指的是如上所说的window,window里面没有birth所以失效

 

apply()

在java中this是无法指向的 ,默认指向调用它的对象,但是在js中可以控制this指向

 

 ================

 

 将this指向person

 

标签:return,函数,作用域,window,abs,参数
来源: https://www.cnblogs.com/zhulei118/p/16414339.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有