博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript-函数,作用域
阅读量:6328 次
发布时间:2019-06-22

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

函数

函数是一段代码,只能被定义一次,但可以被执行或调用多次

定义函数

定义函数的方式有两种

/** 字面量/直接量方式* var 函数名称=function(){*        函数体* }//定义函数时,函数体内容不会被执行* *//*   var name =function () {    console.log('这是一个函数')};   fun();//调用函数,才能执行函数体内容*//** 函数声明方式* function 函数名称(){*     函数体* }*/ function fun(){     console.log('这是一个函数') }

函数的参数

/*   定义函数   function 函数名称(形参){        函数体    }*  定义函数时的参数是形参*  形参类似于一个变量*  形参默认为未定义任何指时->undefined*///形参允许定义多个,使用逗号分开   function fun(a,b,c) {//在函数中定义一个变量,但未初始化值       console.log(a+b,c)   }/** 调用函数* 函数名称(实参)* 函数的调用->实参(值)*/   fun(23,100);//为函数中定义的变量初始化值/*    形参与实参    * 形参的个数与实参可以是一致的      * 形参的个数多于实参的个数 -> 多余的形参没有值(默认为 undefined)      * 实参的个数多余形参的个数 -> 多余的实参没有对应的形参    * 形参与实参根据占位符进行一一对应 */

return语句

函数可以包含一个返回语句(return),这不是必须的,return使函数可以作为一个值使用

/*  函数的return语句*  并不是必要的*  作用:作为函数的返回值*  用法:一般在函数的最后面,但并不强制*  */function fun(){    console.log('这是一个函数');    return 23;}fun();//这是一个函数console.log(fun());//这是一个函数/23console.log(fun);//[Function:fun]/*   return语句*   可以吧在函数的最后面*   但return之后的代码不会再执行*   当return并未设置值时,结果为undefined*/function fn(){    console.log('这是return语句之前...');    return;    console.log('这是return语句之后...');}var result = fn();console.log(result);//这是return语句之前.../undefined

预定义函数

JavaScript预定义了一组函数,又称为全局函数,可以直接使用

clipboard.png

eval()函数

eval()函数用于执行以字符串形式(Sting)出现的JavaScript代码。

// 定义一个字符串 - 文本内容是JavaScript代码var str = 'console.log("测试...")';// console.log(str);/*    eval()函数    * 作用 - 将一个字符串类型的JavaScript代码转换为真正的JavaScript代码,并且执行    * 问题 - 安全问题 */eval(str);//测试

作用域

变量与函数都有作用域。作用域就是变量和函数可以被访问的范围,可以分为全局作用域和函数作用域(局部作用域)。

定义在全局作用域,可以在任何位置访问,局部作用域只能在指定函数内部访问

变量的作用域

/*  全局作用域(函数作用域之外的范围)-全局变量     全局变量的作用域->全局作用域+函数作用域*   */var v1 = 23;console.log(v1);function fun() {    /*   函数作用域-局部变量*    局部变量的作用域-当前函数内部*    */    var v2 = 100    console.log(v1)    console.log(v2)}fun();//23/100//全局作用域不能访问局部作用域console.log(v2);//v2 is not defined

声明提前

可以先引用变量再声明变量,因为变量的声明会被默认在函数和语句之前,相当于先声明了一个变量但为初始化值,输出为undefinef

console.log(v1);//undefinedvar v1 = 100;console.log(v1);//100

按值传递

按值传递就是讲实参变量复制一份传递给形参变量,实参不变

/*定义一个全局变量*/var v1 = 23;/*定义一个函数*/function fun(v1){    v1++;    console.log(v1)//24}/*调用指定函数,实参传递的是全局变量的值*/fun(v1);//24/*调用指定全局变量*/console.log(v1);//23

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

你可能感兴趣的文章
python学习之老男孩python全栈第九期_day013知识点总结
查看>>
ifdef ANDROID总是不好用
查看>>
poj1328 Radar Installation 贪心
查看>>
file(内部存储与外部存储)
查看>>
Anya and Cubes 搜索+map映射
查看>>
斯坦福依存句法分析环境的搭建(但没有root提示)
查看>>
PHP2014-5-12的总结
查看>>
Python 用HTMLParser解析HTML文件 - 转
查看>>
基于BOOST 实现并发服务器框架
查看>>
session
查看>>
ios学习笔记
查看>>
【转载】文本特征提取方法研究
查看>>
基于粒子滤波的目标跟踪——解读Rob Hess的好文章
查看>>
ADS1.2 调试问题
查看>>
cell嵌套UIWebView遇到的几个问题
查看>>
分享一些常用的开源组件
查看>>
数据库自助查询平台
查看>>
ROS nodelet的使用
查看>>
SQLI LABS Stacked Part(38-53) WriteUp
查看>>
oracle异常
查看>>