JavaScript-函数,作用域

函数

函数是一段代码,只能被定义一次,但能够被实行或挪用屡次

定义函数

定义函数的体式格局有两种

/*
* 字面量/直接量体式格局
* 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());//这是一个函数/23
console.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预定义了一组函数,又称为全局函数,能够直接运用

《JavaScript-函数,作用域》

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);//undefined
var v1 = 100;
console.log(v1);//100

按值通报

按值通报就是讲实参变量复制一份通报给形参变量,实参稳定

/*定义一个全局变量*/
var v1 = 23;
/*定义一个函数*/
function fun(v1){
    v1++;
    console.log(v1)//24
}
/*挪用指定函数,实参通报的是全局变量的值*/
fun(v1);//24
/*挪用指定全局变量*/
console.log(v1);//23
    原文作者:李威振
    原文地址: https://segmentfault.com/a/1190000015980255
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞