JavaScript 学习日志(变量)

参考网址:https://www.runoob.com/js/js-variables.html

  1. let 与 var 的区别:var 变量域比 let 大,let 适用于其声明的块或子块中。
    var 允许重复声明变量,后声明的值覆盖之前声明的值。
    let 不允许在相同作用域内,重复声明同一个变量,会报错。

    
    	function varTest() {
    	    var x = 1;
    	    if (true) {
    	        var x = 2;       // 同样的变量!
    	        console.log(x);  // 2
    	    }
    	    console.log(x);  // 2
    	}
    	
    	function letTest() {
    	    let x = 1;
    	    if (true) {
    	        let x = 2;       // 不同的变量    
    	        console.log(x);  // 2  
    	    }
    	    console.log(x);  // 1
    	}
    	
    	
    	function () {
    	  var a = 1;
    	  var a = 10;
    	  console.log(a); // 10
    	}
    
    	// 报错
    	function () {
    	  let a = 10;
    	  var a = 1;
    	}
    	
    	// 报错
    	function () {
    	  let a = 10;
    	  let a = 1;
    	}
    	
    	// 因此,let不能在函数内部重新声明参数。
    	function func(arg) {
    	  let arg; // 报错
    	}
    	
    	function func(arg) {
    	  {
    	    let arg; // 不报错
    	  }
    	}
    
    	
    
  2. const 用于声明常量,常量的值不能通过重新赋值来改变,并且不能重新声明。

    	//定义常量a并赋值为0
    	const a = 0;
    	
    	//报错(不能重新赋值)
    	a = 1;
    	
    	//报错(不能重新声明)
    	const a = 2;
    	
    	//输出0
    	console.log("a is: " + a);
    	
    
  3. 变量与字面量

    
    	var a=1;   // a 是变量,1 是字面量
    	
    	var stooge = {    // stooge 是一个对象
    	
    	   "frist-name" = "Julie",    // 等号左为属性名,右侧为属性值
    	    last_name = "beck"    // 属性名如果是合法的标识符,可省略引号
    	
    	};   
    	 // "frist-name", last_name, "Julie", "beck" 都是对象字面量
    	
    
  4. JavaScript 允许重复定义函数,但没有重载这个概念,仅依据函数名来区分函数。

    后定义的同名函数覆盖之前的,与参数无关。

    
    	function test() {
    	    console.log("test");
    	}
    	test();     //输出 "test arg0 + undefined"
    	
    	function test(arg1) {
    	    console.log("test arg" + arguments.length + " + " + arg1);
    	}
    	test(1,2);  //输出 "test arg2 + 1"
    	
    
  5. 变量与普通函数重名的时候,变量生效。

    	// 情况一,只有函数a
    	function a() {
    	    return "function";
    	}
    	console.log(a);     
    	/* 
    	输出
    	function a() {
    	    return "function";
    	}
    	*/
    	console.log(a());   // 输出 "function"
    
    	// 情况二,变量a与普通函数a并存
    	var a = 100;
    	function a() {
    	    return "function";
    	}
    	console.log(a);     //输出 100
    	console.log(a());   
    	/*
    	报错
    	Uncaught TypeError: a is not a function
    	    (anonymous function) @test.html:9
    	*/
    
    

    JS 中有两种函数,一种是普通函数,一种是函数对象。
    函数对象用于声明一个匿名函数,然后将该函数的 init 方法赋值给该变量。

    	// 情况三,变量a与函数对象并存
    	var a = 100;
    	var a = function() {
    	    return "function";
    	}
    	console.log(a);
    	/* 
    	输出
    	function() {
    	    return "function";
    	}
    	*/
    	console.log(a());   //输出 "function"
    	
    
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 鲸 设计师: meimeiellie
应支付0元
点击重新获取
扫码支付

支付成功即可阅读