博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript 之 核心语法 [ 函数和作用域 ]
阅读量:5820 次
发布时间:2019-06-18

本文共 2568 字,大约阅读时间需要 8 分钟。

函数

描述

  • 表示定义一段JavaScript代码,并且可重复使用

函数的定义

  • 函数声明方式
  • 字面量表达方式

函数声明方式

语法

function 函数名称( )"小括号不可省去" {      函数体}
/* 函数声明方式 */function fun() {    /* 在定义函数时,函数体中的内容不会被执行 */    console.log( '哑吼吼' );}/*    调用函数 - 使用函数名称     * 调用函数的时候会执行函数体中的内容 */fun();

字面量方式

语法

var 函数名 = function( )"小括号不可省去" {      函数体}
/* 字面量方式 */var fn = function() {    /* 在定义函数时,函数体中的内容不会被执行 */    console.log( '吼哑哑' );}/*    调用函数 - 使用函数名称     * 调用函数的时候会执行函数体中的内容 */fn();

函数的参数

描述

  • 表示定义函数时在函数名称中使用的定义( 小括号中的 )
  • 参数只能在函数中使用

参数分为

  • 形参 - 定义函数时使用的参数
  • 实参 - 调用函数时使用的参数
/* 定义函数 - 形参 */function fun( a, b ){    /*        在参数中:        形参与实参个数相对应        * 形参的个数多于实参个数时,没有对应实参的形参会显示 undefined        * 实参的个数多于形参个数时,没有对应形参的实参会没有显示     */    console.log( a, b );// 显示效果:a=1,b=2}/* 调用函数 - 实参 */fun( 1, 2 );

return语句

  • 表示函数在调用结束后具有一个返回值
  • return语句并不是必要的
  • return语句一般会被编写在函数体的最后面

    • 如果不在函数体的最后面,return语句之后的代码将不会被执行
  • return语句带有值会显示值,如果没有值会显示 undefined
function fun(){    console.log( '啊哈哈' );    return 100;}/* 调用函数 */fun();// 显示 啊哈哈/* 将函数的返回值 赋值到变量中 */var funs = fun();/* 显示返回值 */console.log( funs );// 显示 100/* return语句不在函数体最后 */function fn(){    console.log( '啊哈哈' );    return;    console.log( '呀吼吼吼' );}fn();// 显示 啊哈哈var fns = fn();console.log( fns );// 显示 undefined

作用域

  • 变量和函数都具有作用域,用于显示可被显示访问的区域
  • 作用域分为(变量和函数一样):全局作用域和局部作用域(函数作用域)

    • 全局作用域:表示在函数之外的所有区域
    • 局部作用域(函数作用域):表示在函数之内的区域

全局变量和局部变量

全局变量

  • 是指在全局作用域中定义的变量
  • 该变量可以同时作用在全局作用域和局部作用域(函数作用域)

局部变量

  • 是指在函数内的变量
  • 局部变量只能作用在当前函数中
/* 作用在全局作用域 */var num = 100;console.log( num );/* 同时作用在局部作用域 */function fun() {    console.log( num );}fun();/* 定义全局变量 */var num1 = 100;function fn() {    console.log( num1 );    /* 定义局部变量 - 只能作用于当前函数 */    var num2 = 100;    console.log( num2 );}fn();/* 在全局作用域调用局部变量会报错 */console.log( num2 );// 显示 num2 is not define

函数和内部函数

函数(全局函数)

  • 是指在全局作用域中定义的函数
  • 该函数可以同时作用在全局作用域和局部作用域(函数作用域)

内部函数(私有函数)

  • 是指在函数内的函数
  • 内部函数只能作用在当前函数中
/* 定义全局函数 */function fun(){    console.log( '啊哈哈' );    /* 定义内部函数 */    function fu(){        console.log( '呀吼吼' );    }    fu();}/* 全局作用域 */fun();/* 在全局作用域调用内部函数会报错 */fu();// 显示 fu is not defined/* 定义另一个全局函数 */function fn(){    /* 函数中可以调用全局函数 */    fun();    /* 无法调用另一个函数的内部函数 - 会报错 */    fu();// 显示 fu is not defined}fn();

声明提前

  • 表示在使用变量时,先调用变量,在对变量进行定义
  • 语法不会报错,会显示 undefined
/* 先调用未定义的变量,在随后定义,语法不会报错,会显示 undefined */console.log( s );//显示结果:undefinedvar s ;//调用后定义/* 重新定义并赋值 */var s = 100;/* 显示效果 */console.log( s );// 100

按值传递

  • 是指将函数实参的变量值赋值给函数形参,使实参和输出结果一样
  • 在对局部变量进行修改时,不会修改全局变量
/* 全局变量 */var s = 100;function f ( s ) {    s++;// 修改局部变量    return s;// 返回数值}/* 定义变量显示返回值 */var ss = f( s );/* 显示函数输出效果 */console.log( ss );// 101/* 显示全局变量 */console.log( s );// 100

转载地址:http://ouzdx.baihongyu.com/

你可能感兴趣的文章
poj3692
查看>>
python之信号量【Semaphore】
查看>>
html5纲要,细谈HTML 5新增的元素
查看>>
Android应用集成支付宝接口的简化
查看>>
[分享]Ubuntu12.04安装基础教程(图文)
查看>>
WCF
查看>>
django 目录结构修改
查看>>
win8 关闭防火墙
查看>>
Android实例-录音与回放(播放MP3)(XE8+小米2)
查看>>
CSS——(2)与标准流盒模型
查看>>
MYSQL 基本SQL语句
查看>>
C#中的Marshal
查看>>
linux命令:ls
查看>>
Using RequireJS in AngularJS Applications
查看>>
hdu 2444(二分图最大匹配)
查看>>
shell编程笔记六:实现ll命令
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
《Linux内核修炼之道》 之 高效学习Linux内核
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>