function () {
var num1 = 123;
window.num2 = 456;
console.log(num1);
console.log(num2);
JavaScript通过var定义全局变量与在window对象上直接定义属性的区别关于window区别一区别二区别三关于window一、所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。二、全局变量是 window 对象的属性。三、全局函数是 window 对象的方法。所有在全局作用域中声明的变量、函数都会变成window对象的属性和方法。如:va...
相信你对全局变量一定不陌生,在函数作用域里用a=1这种形式定义的变量会是一个全局变量,在全局作用域里,用下面3种形式都可以创建对全局可见的命名: 代码如下:[removed]var a = 1;b = 2;window.c = 3;[removed]对于b=2这种方式, 它其实和c是一样的,在执行这个赋值语句的时候,会沿着作用域链寻找名字叫做b的变量,一直找到作用域链的顶端还没有找到,于是给window添加一个属性b然后赋值。
var与不var有两个区别:
1 var的全局变量不能被删除,因为delete智能删除对象的可删除的属性,而通过var 定义的全局属性会被标明不可删除。需要说明的是,de
JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍。
声明方式一:
使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量。该方式即为显式声明详细如下:<script>
var test = 5;//全局变量
function a(){
var a = 3;//局部变量
alert(a)
var abc=89;//带var,表示全局变量
function test(){
var abc=80;//在函数内部,如果不带var,表示使用函数外全局变量;带上var,表示新定义一个全局变量
test();
window.alert(abc);
[removed]
严格来说:函数体内不带var,并不是指定义一个变量,而是进行变量赋值,即
就是这种盲目无原理依据的研究测试弄晕了我, 有必要这么做吗? 其实理解了原理就没必要搞这么多一个一个的试, 然后得出规律, ECMAScript规则都已经定义好了.
var的规则是: 使用var声明变量就是内部变量, 否则就是先调用全局变量, 不管多少层函数.
this的规则是: method函数里的this永远指向自身, 普通函数的this永远指向DOMWindow.
// GodDamnTest1
function Foo() {
var a = 123; // 局部变量, 所有子函数的全局变量
this.a = 456; // 对象属性
(function() {
alert(a);
1.
window全局变量
javascript自带一个
window全局变量,alert,console等方法存在于
全局变量中。
若
定义变量不使用
var,let,const,那么该变量默认为一个
全局变量。
a = 8;
console.log(
window.a);
2.
var
定义变量的关键字
3.let
解决局部作用域冲突问题,比起
var更推荐使用
4.const
定义常量,该关键字
定义的变量值不可更改。
var定义的全局变量和window变量区别
使用var定义的全局变量相当于直接挂载在window对象上,但是和window.c=2定义的变量有所不同。
直接定义的全局变量直接挂载在window上,a=2;和window.a=2,效果一样。
var定义变量不能使用delete删除
原因:通过var语句添加的全局变量有一个configurable属性,其默认值为false,直接定义的window.c的configurable属性是true
var a = 2;
windows.c = 3;
delete a;
然而全局变量和与在window对象上定义的属性还是有一点区别的:
全局变量不能通过delete操作符删除,二在window上定义的属性就可以
var age = 22;
window.color = ...
执行上下文(Execution context)
执行上下文(简称上下文)决定了Js执行过程中可以获取哪些变量、函数、数据,一段程序可能被分割成许多不同的上下文,每一个上下文都会绑定一个变量对象(variable object),它就像一个容器,用来存储当前上下文中所有已定义或可获取的变量、函数等。位于最顶端或最外层的上下文称为全局上下文(global context),全局上下文取决于执行环境,如Node中的global和Browser中的window:
需要注意的是,上下文与作用域(scope)是不同的概念。Js本身是单线程的,每当有function被执行时,就会产生一个新的上下文,这一
var x = 2; y = 3; console.log(x); //2 console.log(y); //3 console.log(
window.x);//2 console.log(
window.y);//3
可以看出x,y都挂在
window下,成为
window
JS中声明
全局变量主要分为显式声明或者隐式声明下面分别介绍。
声明方式一:
使用
var(关键字)+变量名(标识符)的方式在function外部声明,即为
全局变量,否则在function声明的是局部变量。该方式即为显式声明详细如下:
var test = 5; //
全局变量
function a()
var cc=3; //局部变量
alert(test);
今天安装jave RE,需要设置全局变量,除了图形界面的配置外,有没有其他的方式设置呢,开始以为set可以,看了半天没整明白到网上search下,见到了几种方法:
1、 regedit方法
路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
可手动也可脚本
...