首页 > 编程语言 >JavaScript基础04

JavaScript基础04

时间:2023-08-03 18:22:59浏览次数:36  
标签:count function 函数 04 作用域 JavaScript 基础 全局变量 变量

函数

函数定义

function 自定义函数名() {
 函数体代码;
}
// 函数名命名: 1. 与变量名规则基本上是一样的! 2. 建议变量名使用名词,函数名用动词 3. 大小写敏感 4. 普通函数使用小驼峰,不要首字母大写 5. 首字母大写的函数一般用作自定义构造函数

函数调用

自定义函数名();

匿名函数

  function (){
   函数体
}
 // 不能单独使用,单独使用会直接报语法错误--Function statements require a function name; 函数表达式需要一个函数名

函数表达式--可以认为是另外一种创建函数的形式

var 自定义变量 = 匿名函数;
自定义变量();  //也可以执行

自执行(自调用函数)函数,IIFE

;(function () {
 函数体;
})();

预解析

代码编译过程中会将变量声明,函数声明提升到当前作用域的最前面

全局作用域,函数作用域,全局变量,局部变量

直接在script标签中声明的变量是全局变量,作用域是整个js脚本中 在js的函数中,存在函数作用域(块级作用域,局部作用域),那么在函数作用域中声明的变量,是局部变量,作用域就只是当前函数作用域 在其他强类型语言中,只要是花括号{}就是一个块级作用域(局部作用域) 目前,用var声明的变量只有在函数中才是局部变量

作用域链

在使用变量的时候,存在就近原则,优先找当前作用域内的变量,如果当前作用域没有,会向上级作用域去查询,如果没有,会一直向上级作用域查询,直到全局作用域;如果有就遵循就近原则

隐式全局变量

 // 隐式全局变量
   function f1(){
     // 在函数内部没有使用var声明变量,同时全局中也没有同名变量,那么这个变量是 隐式全局变量
     num = 100
     console.log(num);  //100
  }
   f1()

全局变量可以被函数重新赋值

 // 全局变量在函数中重新赋值
   var count = 10;
   function f2(){
     // 这里是在给count变量重新赋值
     count = 20;
     console.log(count);  // 20
  }
   // 在函数调用之前,count没有变
   console.log(count);  //10
   f2()
   // 在函数调用之后,count在函数中被重新赋值了,count值就变了!!
   console.log(count); // 20

函数的参数

  function 函数名(形参1,形参2,...){
   console.log(形参1,形参2,...)
}
 函数名(实参1,实参2,...)

形参比实参数量多, 会有形参没有值 实参比形参数量多, 多余的实参在函数中没有形参接收

arguments

函数内部存在的伪数组对象,它是由实参组成的!!

函数的返回值

  1. 如果函数没有写return关键字,或者写了return但是没有指定值,那么函数的返回值是undefined

  2. 函数中执行了return,那么return这一句话后续代码就不再执行了!

  3. 如果需要返回多个值,需要使用对象类型或者数组类型返回

  4.  

标签:count,function,函数,04,作用域,JavaScript,基础,全局变量,变量
From: https://www.cnblogs.com/xuxiang946210/p/17604119.html

相关文章

  • go基础-方法
    概述方法是面向对象编程(OOP)的一个特性,在C++/Java语言中方法是类函数,go做为函数式编程语言,通过特有技能支持相似的功能,所以说go也支持面向对象编程特性。go方法本质也是函数,相比普通函数稍有区别,方法必须与具体类型绑定,且无法独立运行,只能通过类型实例执行,函数是一等公民......
  • 自己整理的ASP.NET基础 (不断的更新)
    .列举ASP.NET页面之间传递值的几种方式。答.1).使用QueryString,如....?id=1;response.Redirect()....                 2).使用Session变量                 3).使用Server.Transfer--------------------------------------------......
  • C++基础
    Talkischeap.Showmethecode.C++分为C++语言和C++标准库 版本演化可分为C++98(1.0),C++11(2.0),C++14话不多说,上代码头文件命名方式,例如complex.h首先要写防卫式声明,以前写的时候只是知道要写,现在知道才叫什么。1#ifndef_MYCOMPLEX_2#define_MYCOMPLEX_34......
  • go语言基础-关键字
    go代码中会使用到25个关键字和保留字breakdefaultfuncinterfaceselectcasedefergomapstructchanelsegotopackageswitchconstfallthroughifrangetypecontinueforimportreturnvargo代码经常用到的预定义标识符appendboolbytecapclo......
  • 前端性能优化的利器 ——— 浅谈JavaScript中的防抖和节流
    防抖和节流函数是工作中两种常用的前端性能优化函数,今天我就来总结一下什么是防抖和节流,并详细说明一下如何在工作中应用防抖和节流函数什么是防抖和节流?在JavaScript中,防抖(debounce)和节流(throttle)是用来限制函数执行频率的两种常见技术。防抖(debounce)是指在某个时间段内......
  • Java后端04(Ajax异步加载)
    Ajax异步加载jsp涉及到的问题每次哪怕是页面的局部修改,都会导致服务器重新获取,页面的所有信息,导致jsp页面的效率非常低下前端jsp页面无法脱离服务器运行前端和后端无法分离开发,开发效率低下Ajax介绍​ Ajax是由谷歌开发,底层是通过js开发的技术,如果页面内容只是局部......
  • 安卓开发基础一
    1安卓开发环境搭建1.1安卓开发环境介绍#做安卓开发,首先要会java -需要安装安卓SDK+集成开发环境eclipse---》早些年-安装SDK依赖于java的sdk---》安装jdk,已经安装过了-后来,谷歌公司购买了jebrains的编辑器版权(IDEA,Pycharm...)---->做出了AndroidStudio编辑器,专门......
  • Javascript 方法有多个参数有默认值,但是只想为其中某个参数赋值
    例子:functionlog(a,b=2,c=3,d=4){console.log(a,b,c,d)}log(1);//output:1234log(1,3,6,9);//1369log(1,undefined,9,12);//12912log(1,undefined,0);//1204log(1,undefined,undefined,16);//12316就是在你想......
  • android调用javascript传多个参数
    Stringparam1="Hello";Stringparam2="World";Stringscript="yourJavaScriptFunction('"+param1+"','"+param2+"');";webView.loadUrl("javascript:"+"yourJava......
  • 从零基础开始开发自己的第一个微信小程序
    内容介绍通过本篇blog,你可以熟悉从零开始,搭建小程序开发环境,并运行起自己的第一个小程序。小程序开发步骤1、注册账号2、下载开发工具搭建开发环境3、创建工程,编写代码4、手机上查看效果通过以上四步就能创建属于自己的小程序了。注册微信小程序账号注册完成后是这样......