javaScript定义函数的三种方式&变量的作用域
一.函数定义
方式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定义函数的三种方式&变量的作用域的更多相关文章
- JavaScript定义函数的三种方式
直接定义函数 function f1(x,y){ return x+y; } 使用Function构造函数 var f2=new Function("x","y" ...
- JavaScript创建函数的三种方式
㈠函数(function) ⑴函数也是一个对象 ⑵函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码) ⑶函数中可以保存一些代码在需要的时候调用 ⑷使用typeof检查一个函数对象时,会返 ...
- javascript中构造函数的三种方式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JavaScript声明全局变量的三种方式
JavaScript声明全局变量的三种方式 JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍. 声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为 ...
- [转]Javascript定义类的三种方法
作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html 将近2 ...
- JavaScript中创建对象的三种方式!
JavaScript中创建对象的三种方式! 第一种 利用对象字面量! // 创建对象的三种方式! // 1 对象字面量. var obj = { // 对象的属性和方法! name: 'lvhang' ...
- javascript函数 (二 定义函数的三种方法)
javascript定义函数(声明函数)可以有三种方法:正常方法.构造函数.函数直接量 <html><head></head><body> <sc ...
- JS定义函数的2种方式以及区别简述(为什么推荐第二种方式)
无意中看到了阮一峰大神多年前的一篇博客: 12种不宜使用的Javascript语法 看到第9条的时候受到了启发,感觉之前没怎么理解清楚的一些问题好像突然就清晰了,如下图 可能光这样看,有些小伙 ...
- JavaScript事件绑定的三种方式
(一)事件绑定的三种方式 (1)通过on的形式 <script type="text/javascript"> var div = document.getElemen ...
随机推荐
- InnoDB INFORMATION_SCHEMA Lock Tables
InnoDB INFORMATION_SCHEMA Lock Tables 三张InnoDB INFORMATION_SCHEMA表使您能够监视事务并诊断潜在的锁定问题: INNODB_TRX:提供有 ...
- 7. 配置undo表空间
7. 配置undo表空间 undo日志可以存储在一个或多个undo表空间中,无需存储在系统表空间中. 要为MySQL实例配置单独的undo表空间,请执行以下步骤 [重要]: 只能在初始化新MySQL实 ...
- (1) openssl基础概念
1.1 背景知识 对称加密 :加密解密使用同一密钥,加解密速度快.随着人数增多,密钥数量急增n(n-1)/2. 非对称加密 :使用公私钥配对加解密,速度慢.公钥是从私钥中提取出来的,一般拿对方 ...
- running Fluent on Apocrita Cluster
two files: code.sh, code.jou code.sh #!/bin/bash #$ -cwd #$ -j y #$ -m bea #$ -M k.ai@qmul.ac.uk #$ ...
- 剑指Offer(书):数组中重复的数字
题目:找出数组中重复的数字. 说明:在一个长度为n的数组里的所有数字都在0~n-1的范围内,数组中某些数字是重复的,但是不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重复的数 ...
- Linux使用yum命令安装软件时,连接不了网路报错:ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
错误: 解决方案: 在/etc/sysconfig/network-scripts/ifcfg-eth0文件中配置DNS信息: vim /etc/sysconfig/network-scripts/i ...
- 【瞎扯】我的OI之路
这里大概是一些我自己对我的OI之路的一些记录. 2015.11不知道哪一天-- 我听说了"编程". 当时还不懂得啥是信息学竞赛,以为这只是纯粹的程序设计.后来才明白信息学竞赛是算法 ...
- PS学习笔记(01)
[1]PS,文件-脚本-删除所有的空图层. [2]设计师与美工的区别? 设计在于有思路了再去找素材, 美工在于有素材后再去设计 (思路是在大量的设计上,才累计出来的.) [3]如何知道一张图片 ...
- Leetcode 221.最大的正方形
最大的正方形 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积. 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出 ...
- 高精度模板(From JCVB)
#include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #i ...