一.函数定义

方式1.普通方式定义函数

function 函数名(參数n){

函数体

}

function add(a,b){
return a+b;
}

方式2.直接量定义函数

var 函数名=function(參数n){

函数体

}

var add=function(a,b){
return a+b;
}

方式三.构造方式定义函数

var 函数名=new Function(參数n,函数体);

var add = new Function('a,b','return a+b;');

二.变量的作用域:

全局变量:全局域和函数域

局部变量:局部函数域内

<script type="text/javascript">
var a="a";
function fn(){
var b="b";
alert(a);
alert(b);
}
fn();
alert(a);
alelrt(b);
</script>

打印结果:a,b,a我们发现最后一个alert(b)没有打印这是由于b定义在函数体内仅仅能在函数体内使用

特殊的作用域

<script type="text/javascript">
var a="a";
function fn(){
alert(a);
var a="b";
alert(a);
}
alert(a);
</script>

执行结果:

undefined,b,a

代码解释:

* 解读一下代码:

*  * 定义一个全局变量a,并初始化为"a".

*  * 定义一个函数fn(),可是没有调用(说明函数内容的代码不运行).

*    * 定义局部变量a,但不初始化.

*  * 到以上代码为止,当前环境中具有几个变量?

*    * 全局变量a,值为"a".

*    * 局部变量a,但没值.

*  * 当调用函数fn()时:

*    * 打印变量a:就近原则

*      * 局部变量a,没值:结果为undefined.

*    * 打印变量a,局部变量a.

*  * 在全局域中打印变量a:全局变量a.



* 结论:

*  * javascript一次性定义代码段中全部的变量,但不初始化.

*  * javascript中当运行到相应语句时,初始化变量.

*  

*  * 当全局变量与局部变量同名时:

*    * 在函数域中,仅仅能訪问到局部变量a.

javaScript定义函数的三种方式&amp;变量的作用域的更多相关文章

  1. JavaScript定义函数的三种方式

    直接定义函数 function f1(x,y){ return x+y; } 使用Function构造函数 var f2=new Function("x","y" ...

  2. JavaScript创建函数的三种方式

    ㈠函数(function) ⑴函数也是一个对象 ⑵函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码) ⑶函数中可以保存一些代码在需要的时候调用 ⑷使用typeof检查一个函数对象时,会返 ...

  3. javascript中构造函数的三种方式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. JavaScript声明全局变量的三种方式

    JavaScript声明全局变量的三种方式   JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍. 声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为 ...

  5. [转]Javascript定义类的三种方法

    作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html 将近2 ...

  6. JavaScript中创建对象的三种方式!

    JavaScript中创建对象的三种方式! 第一种 利用对象字面量! // 创建对象的三种方式! // 1 对象字面量. var obj = { // 对象的属性和方法! name: 'lvhang' ...

  7. javascript函数 (二 定义函数的三种方法)

    javascript定义函数(声明函数)可以有三种方法:正常方法.构造函数.函数直接量 <html><head></head><body> <sc ...

  8. JS定义函数的2种方式以及区别简述(为什么推荐第二种方式)

     无意中看到了阮一峰大神多年前的一篇博客: 12种不宜使用的Javascript语法    看到第9条的时候受到了启发,感觉之前没怎么理解清楚的一些问题好像突然就清晰了,如下图 可能光这样看,有些小伙 ...

  9. JavaScript事件绑定的三种方式

    (一)事件绑定的三种方式 (1)通过on的形式 <script type="text/javascript"> var div = document.getElemen ...

随机推荐

  1. 我们需要了解的五个ERP趋势

    企业的全面现代化进程伴随着ERP的发展.在2019年,预计规模较小的供应商将加大力度,双层ERP(Two-Tier ERP)将开始占据市场份额,企业也将要求更加灵活的ERP的实施方案. 该预测基于咨询 ...

  2. python基础——2(基本数据类型及运算符)

    目录 为何数据要区分类型? 一.数字类型 1.整型int 2.浮点型float 二.字符串str 三.列表类型list 四.字典类型 五.布尔类型 运算符的介绍 一.算术运算符 二.比较运算符 三.赋 ...

  3. python008 Python3 字符串

    var1 = 'Hello World!' var2 = "QQ603374730" Python 访问字符串中的值Python 不支持单字符类型,单字符也在Python也是作为一 ...

  4. UVA624 CD,01背包+打印路径,好题!

    624 - CD 题意:一段n分钟的路程,磁带里有m首歌,每首歌有一个时间,求最多能听多少分钟的歌,并求出是拿几首歌. 思路:如果是求时常,直接用01背包即可,但设计到打印路径这里就用一个二维数组标记 ...

  5. NYOJ660逃离地球——只为最大存活率~

    逃离地球 时间限制:1000 ms  |  内存限制:65535 KB 难度: 描述 据霍金的<时间简史>所述,在几亿年之后将再次发生宇宙大爆炸.在宇宙大爆炸后,地球上将新生出许多生物而不 ...

  6. 实体类与实体DTO类之间的转换

    实体类与实体DTO类之间的转换 实体类与实体DTO类之间的转换 1.通过使用第三方序列化反序列化工具Newtonsoft.Json 2.通过反射实现 3.通过表达式目录树加字典缓存实现 4. 通过表达 ...

  7. 亚瑟王(bzoj 4008)

    Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 亮.众所周知,亚瑟王是一 ...

  8. loadrunner 并发操作集合点配置

    在loadrunner的虚拟用户中,术语concurrent(并发)和simultaneous(同时)存在一些区别,concurrent 是指虚拟场景中参于运行的虚拟用户.而simultaneous与 ...

  9. BZOJ——T 1707: [Usaco2007 Nov]tanning分配防晒霜

    http://www.lydsy.com/JudgeOnline/problem.php?id=1707 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 8 ...

  10. uva 10559

    记忆话搜索 DP 看了网上题解  状态方程真是巧妙 orz #include <cstdio> #include <cstdlib> #include <cmath> ...