<script>
var i = 'yuanjianhang';
function myloveName() {
alert(i);
var i = 'guanxi'; }
myloveName();
</script>

运行结果 undefined

 <script>
var i = 'yuanjianhang';
function myloveName() {
var i = 'guanxi';
alert(i);
}
myloveName();
</script>

运行结果  guanxi

代码分析  function内 加上var 代表局部变量,声明的局部变量名称和外部的全局变量名称相同,但是与外部的i是没有关系的,只是名称相同而已,所以alert(i)在,局部变量定义之前会输出undefined.

 <script>
var i = 'yuanjianhang';
function myloveName() {
alert(i);
i = 'guanxi'; }
myloveName();
</script>

运行结果  yuanjianhang

 <script>
var i = 'yuanjianhang';
function myloveName() { i = 'guanxi';
alert(i);
}
myloveName();
</script>

运行结果  guanxi

代码分析 function内i没加var 代表全局变量,所以alert(i)在变量赋值之前,输出yuanjianhang

 <script>
i = 'yuanjianhang';
function myloveName() {
a = 'guanxi';
}
myloveName();
alert(a);
//document.write(a);
</script>

运行结果  guanxi  代码分析a为全局变量

PS:全局变量可以不声明var 函数内变量必须声明var,在定义全局变量时加或不加var关键字没什么影响;但在定义局部变量时如果不加var关键字javascript解释程序会将其解释为全局变量。

js全局变量和局部变量的更多相关文章

  1. JS全局变量与局部变量

    一句话概括:在函数外声明的变量都为全局变量,在函数内声明的为局部变量. 一.局部变量和全局变量重名会覆盖全局变量 var a = 1; function test1() { var a = 2; al ...

  2. js 全局变量和局部变量

    Javascript在执行前会对整个脚本文件的声明部分做完整分析(包括局部变量),但是不能对变量定义做提前解析 1.作用域和作用域链 2.变量声明提前

  3. JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用

    “JavaScript设计得最出色的就是它的函数的实现.” -- <JavaScript语言精粹> 函数包含一组语句,它们是JS的基础模块单元,用于指定对象的行为.一般来说,所谓编程,就是 ...

  4. Javascript:谈谈JS的全局变量跟局部变量

    原文链接:http://blog.csdn.net/zyz511919766/article/details/7276089# 今天公司一个实习小妹子问我两段JS代码的区别: <script t ...

  5. JS全局变量VAR和THIS--在函数内部,加var是局部变量,不加是全局变量

    JS全局变量VAR和THIS 2011-05-23 21:43 很多人都觉得在JavaScript声明一个变量,加var和不加var没有什么区别,实际上是一个错误的观点,如果在函数外面,也就是说在wi ...

  6. PHP和JS中全局变量和局部变量

    一,PHP中全局变量和局部变量 php与C++中对全局变量和局部变量定义类似,全局变量:函数外定义的变量,在全局通用:局部变量:在函数内定义的变量,只在函数内有效.PHP中变量范围跨越了include ...

  7. JS高级---把局部变量变成全局变量

    如何把局部变量变成全局变量? 把局部变量给window就可以了     函数的自调用---自调用函数 一次性的函数--声明的同时, 直接调用了 (function () { console.log(& ...

  8. js中全局变量和局部变量以及变量声明提升

    javascript中全局变量和局部变量的区别 转载前端小99 发布于2018-04-23 15:31:35 阅读数 2102  收藏 展开 [javascript] view plain copy ...

  9. JS关于全局变量跟局部变量的总结

    一.Javascript的变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分).切记,是function块,而for.while.if块并不是作用域的划分标准,可 ...

随机推荐

  1. Visual Studio 2015里面汇编工具Asm Dude的配置!

    最近开始学习汇编,也开始使用Visual Studio 2015写汇编程序,比较了半天,最后觉得Asm Dude应该是目前Visual Studio 2015非常好的汇编开发插件了,但是如果默认安装上 ...

  2. sql创建表格 转载

    http://blog.csdn.net/wuxiaokaixinguo/article/details/8293048 检查数据库中是否存在某个表,不存在则生成该表方法一:IF NOT EXISTS ...

  3. 使用asmcmdcp命令把datafile从文件系统移动(move)到asm磁盘组中 针对11gR2

    使用asmcmd cp命令 把datafile从文件系统移动(move)到asm磁盘组中--针对11gR2 参考原文:How to Move a Datafile from Filesystem to ...

  4. 39. Recover Binary Search Tree && Validate Binary Search Tree

    Recover Binary Search Tree OJ: https://oj.leetcode.com/problems/recover-binary-search-tree/ Two elem ...

  5. android menu的问题

    1.简单使用 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.me ...

  6. myeclipse 导入JAVA项目

    说白了.就是别人给你一份写好的文件你不会用是吧?新手都是这样的.很正常..这样.咱们一步一步的来.邮件项目工程栏,选择import,选择General,选择Existing Projects into ...

  7. 8天掌握EF的Code First开发系列之2 Code First开发系列之领域建模和管理实体关系

    本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 理解Code First及其约定和配置 创建数据表结构 管理实体关系 三种继承模式 本章小结 本人的实验环境是V ...

  8. Ninject的使用

    摘要 DI容器的一个责任是管理他创建的对象的生命周期.他应该决定什么时候创建一个给定类型的对象,什么时候使用已经存在的对象.他还需要在对象不需要的时候处理对象.Ninject在不同的情况下管理对象的生 ...

  9. 计算机网络 学习笔记-传输层:TCP协议简介

    概述: TCP传输前先要建立连接 TCP在传输层 点对点,一条TCP只能连接两个端点 可靠传输.无差错.不丢失.不重复.按顺序 全双工 字节流 TCP报文段 TCP报文段的报头前20字节是固定的,后面 ...

  10. 根据某个文件或文件夹自制rpm包

    首先安装打包软件# yum install rpmbuild  rpmdevtools -y 生成打包路径1.使用rpmdev-setuptree ,会自动在用户家目录生成一个rpmbuild的文件夹 ...