• 全局变量和局部变量


    前言:大家好我是阿飞。搞清楚变量的作用域至关重要哦。否则会被坑死的。好消息是这个不难,很容易理解掌握。

    变量的作用域

    1. 全局变量 定义在函数外部 (函数内部可以使用)

    2. 局部变量 定义在函数内部 (函数外部不能使用)

    3. 不加var 不管是函数内还是函数外部 都属于全局变量(强烈反对函数内使用不加var的全局变量!谁用谁sb~)另外严格模式'use strict'会报错。

    4. 函数内添加形参可以使 全局变量转变局部变量

    5. 优先使用局部变量 再使用全局

    6. for while if 分支语句 都是全局变量!

    全局变量

    	var index = 100;  //全局变量
    	function demo(){
    		console.log(index);//由此可见函数内部可以获取到外部的index
    	}
    	demo();//打印100;
    

    tips:在函数外部 定义变量时候即使不写var 也可以!

    	index = 100;  //全局变量
    	function demo(){
    		console.log(index);//由此可见函数内部可以获取到外部的index
    	}
    	demo();//打印100;
    

    局部变量

    	例1:
    	function show(){
    		var myindex = 1000;  //局部变量
    	}
    	show();
    	console.log(myindex)  //无法获取 报错!
    
    	
    	例2:
    	function show(){
    		var myindex = 1000;  //局部变量
    		console.log(myindex)  //打印 1000
    	}
    	show();
    

    全局变量污染

    	function demo1(){
    		index = 1000;  //由于没有写var 此时函数内的index变全局变量
    	}
    	demo1();
    	console.log(index)  //打印1000
    

    tips:切记函数内的变量都需要加var!!!如果不写var则变成全局变量,虽然感觉挺方便,可以随便获取,但是这样会埋下坑,今后合作开发时候肯定会被人喷出翔来的。。。。

    形参使全局变局部

    	function demo1(index){   //此刻形参的值=index
    		index = 1000;  		//所以此刻index变成了局部变量
    	}	
    	demo1();
    	console.log(index)  //外部无法获取 报错!
    

    优先使用局部变量 再使用全局

    	例1:
    	var index = 100;
    	function demo(){
    		var index = 90;
    		console.log(index);
    	}
    
    	demo();  //优先使用局部变量 再使用全局
    
    	
    	例2:
    	var myindex = 200;
    	function show(){
    		var myindex = 100;
    		return function(){
    			console.log(myindex);
    		}
    	}
    	show()();// 打印 100
    	//此时var  myindex = 100; 相对于return的内部的函数是全局的
    
    	
    	例3:
    	var myindex = 200;
    	function show(){
    		var myindex = 100;
    		return function(){
    			var myindex = 50;
    			console.log(myindex);
    		}
    	}
    	show()(); // 打印 50; 
    

    for while if 分支语句 都是全局变量!

    	for (var i = 1; i <= 1; i++) {
    			var index1 = "农妇三拳";
    		}
    	if (true) {
    		var index2 ="农夫三拳"
    	}
    	console.log(index1)//打印 农妇三拳
    	console.log(index2)//打印 农夫三拳
    

    ok~差不多应该了解了吧。
    最后让我们搞点事情,做些搞事情的练习题吧。亲_
    点击下方链接即可
    http://www.cnblogs.com/anduyinglufei/p/7442267.html

  • 相关阅读:
    div 和 span的区别
    div 和 span的区别
    javascript类的定义及成员修改
    C# bho操作dom 同时带有隐藏工具栏功能,菜单栏
    javascript类的定义及成员修改
    数据库原理8个例子sql语句
    数据库原理8个例子sql语句
    C++的声明和定义的出别
    C++的声明和定义的出别
    Visual Studio 添加图标和版本
  • 原文地址:https://www.cnblogs.com/anduyinglufei/p/7442259.html
Copyright © 2020-2023  润新知