zoukankan      html  css  js  c++  java
  • 变量声明提前

          /*
    			当前作用域内的声明都会提升到作用域的最前面,包括变量和函数的声明
    			注意: 只是提升声明 不提升赋值和函数表达式的函数体
    			优先级: 语言内置(this、 arguments) ->  形参 -> 函数声明 -> 变量声明 
    			根据优先级 后声明的会覆盖前面声明的同名变量 不管其类型是什么
          */
       		var hello="hello";
       		(function(){
       			console.log(hello);
       			var hello="hello world";
       		})(); // 输出 undefined
    
    
       		// 以上代码等价于
       		// var hello="hello";
       		// (function(){
       		// 	var hello;  // 所以是undefined
       		// 	console.log(hello);
       		//     hello="hello world";
       		// })();
    
    

    这也就是为什么js代码编写过程中, 特意将变量放在函数体的顶部,而不是将声明靠近放在使用变量之处。 这种做法使得源代码非常清晰的反映了真实的变量作用域和执行顺序。####

  • 相关阅读:
    第二次作业
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    第三次作业
    第二次作业
    第二次作业
    gravity
    card
  • 原文地址:https://www.cnblogs.com/mushishi/p/5804746.html
Copyright © 2011-2022 走看看