`

js中的var定义局部变量

 
阅读更多

 

摘自《O'Reilly - Learning JavaScript》

 

When you use var with a variable, you’re defining the variable with local scope, which means you can access them only within the function in which you’ve defined them. If I didn’t use var, the variable msg would be global and would have scope inside and outside the function.

Using a global variable in a local context isn’t a bad thing—and it may be necessary at

times—but it isn’t a good practice, and you should avoid it if possible.

 

Here are the rules regarding scope:

• If you declare a variable with the var keyword in a function or block of code, its

use is local to that function.

• If you use a variable without declaring it with the var keyword, and a global variable

of the same name exists, the local variable is assumed to be the already existing

global variable.

• If you declare a variable locally with a var keyword, but you do not initialize it (i.e.,

assign it a value), it is local and accessible but not defined.

• If you declare a variable locally without the var keyword, or explicitly declare it

globally but do not initialize it, it is accessible globally, but again, it is not defined.

 

 

分享到:
评论

相关推荐

    关于JavaScript中var声明变量作用域的推断

    一、迷思!由一段代码引发的疑惑 请看如下代码: 代码如下: for... 如果JavaScript中用var声明的变量可视为局部变量,那么能访问到这个变量的作用域就是这个变量的局部作用域。如上例,在console.log行处,依然有j、k

    JS变量中有var定义和无var定义的区别以及es6中let命令和const命令

    之前我们在写js代码的时候都知道可以用var定义全局变量和局部变量,也可以省略var,而且在非严格模式下不会报错,但是并不知道两者的区别… var x = 1; y = 4; console.log(x);//1 console.log(y);//4 console.log...

    JavaScript程序设计课件:变量的作用范围.pptx

    变量的作用范围 2.2.4 变量的作用范围 1、作用域 通常来说,一段程序代码中所用到的名字并不是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。...局部变量 在函数内部定义的变量 谢 谢

    浅谈JavaScript中定义变量时有无var声明的区别

    1.在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量。 使用var定义: var a = 'hello World'; function bb(){ var a = 'hello Bill'; console.log(a); } bb() //'hello Bill' console.log...

    javascript中错误使用var造成undefined

    在javascript中根据变量作用的范围不同分为局部变量和全局变量,直接定义的变量是全局变量,全局变量可以被所有的脚本访问;在函数中定义的变量是局部变量,局部变量只在函数内有效。 如果全局变量和局部变量使用...

    JS全局变量和局部变量最新解析

    就是这种盲目无原理依据的研究测试弄晕了我, 有必要这么做吗? 其实理解了原理就没必要搞这么多一个一个的试, 然后... // 局部变量, 所有子函数的全局变量 this.a = 456; // 对象属性 (function() { alert(a);

    javascript定义变量时加var与不加var的区别

    二、加var为局部变量(在方法内),不加var为全局变量(当方法内有一次使用后) 代码如下: [removed] var golbe=”global”; test(); function test(){  var local=”local”;  [removed](golbe);  [removed]...

    Web前端开发技术-认识函数作用域.pptx

    局部变量:在函数体内利用var关键字定义的变量称为局部变量,它仅在该函数体内有效。 局部变量 2.全局变量和局部变量 认识函数作用域 块级变量:ES6提供的let关键字声明的变量称为块级变量,仅在“{}”中间有效,如...

    深入理解变量作用域

    函数的参数也是局部变量,它们只在函数体内部有定义。 在函数体内部,局部变量的优先级比同名的全局变量高。比如给一个局部变量或者函数的参数声明的名字与某个全局变量名字一样的话,那么引用的就是那个局部变量...

    详解js中let与var声明变量的区别

    ES6 新增了let命令,用来声明局部变量,所声明的变量,只在let命令所在的代码块内有效,而且有暂时性死区的约束。 1.ES6可以用let定义块级作用域变量 代码如下: function f1(){ { var a = 10; let b = 20; } ...

    Javascript变量作用域详解

    JS中变量的作用域分为全局变量和局部变量,函数内定义的称为局部变量,函数外的称为全局变量。(“函数外的称为全局变量”是相对的,另此处讨论的前提是用var显式声明的变量,函数内不用var定义的变量默认是全局变量...

    关于全局变量和局部变量的那些事

    变量对于学习js,学习编程语言的同学在熟悉不过了,在这里就不在阐述官方的定义了,网上太多了,今天我们就从生活中来理解他 1.什么是变量? 比如: 一个水杯里面装了水,这个水杯就是变量; 一瓶啤酒,这个啤酒瓶...

    浅谈js函数中的实例对象、类对象、局部变量(局部函数)

    定义 function Person(national,age) ... //局部变量,外面不能访问(类似局部函数) } 调用 var p = new Person("中国", 29); [removed]ln("age:" + p.age); [removed]ln("object national:" + p.national)

    JavaScript 学习笔记之变量及其作用域

    一、变量 ECMAscript变量是松散型变量,所谓松散型变量,就是变量名称可以保存任何类型的数据,每个变量仅仅是一个用于保存值...//定义局部变量  alert(firstDemo);//hello }  test();  function test(){  

    javascript闭包的理解

    没有定义到任何函数中的变量为全局变量,在函数中定义的变量为局部变量,注意在函数内部定义变量时一定要使用var关键字,不带var关键字的变量为全局变量。 javascript中每一段代码都有与之关联的作用域链,这个作用...

    JavaScript中闭包的详解

    闭包是什么 在 JavaScript 中,闭包是一个让人很难弄懂...变量可分为全局变量和局部变量。全局变量的作用域就是全局性的,在 js 的任何地方都可以使用全局变量。在函数中使用 var 关键字声明变量,这时的变量即是局部变

    深入解析JavaScript的闭包机制

    JavaScript 变量可以是局部变量或全局变量。 私有变量可以用到闭包。 全局变量 函数可以访问是有函数内部定义的变量,如: 实例 function myFunction() { var a = 4; return a * a; } 函数也可以访问函数外部...

    浅析JavaScript声明变量

    定义在函数体外的都属于全局变量,定义在函数体内的属于局部变量。这里的定义是指通过var声明的。 JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性。例如: function test(){ my...

    JavaScript私有变量实例详解

    总的来说,私有变量包括函数的参数、局部变量和在函数内部定义的其他函数。 function add(num1, num2){ var sum = num1 + num2; return sum; } 上面的例子中的 num1, num2, sum 就是函数的私有变量。 如果在这个...

Global site tag (gtag.js) - Google Analytics