JS 基础02 let、const、模板字符串,解构赋值

162 阅读1分钟

1.let 和 var

  1. 局部作用域 let 声明的变量是具有块作用域的局部变量
    var 声明的变量是全局变量
	{
	let a =5 
	var b=3
	}
	console.log(b);
	console.log(a);
        //3
        //报错信息
  1. 变量提升 let 声明的变量只能在被定义后调用
    var 声明的变量,在被定义前就能被调用,但值为undefined
   console.log(c); //undefined
   console.log(d); //报错
   var c =10;
   let d =20;
  1. 不允许重复声明
var a = 3
var a = 5  //无误

let a = 6
let a = 10 //报错

2.const

  1. 修饰值
    常量的值不可变

  2. 修饰对象
    对象的属性不变,但属性值可修改

    function getObject(){
        return {name:"Bob"}
     }
     		
    
     const p = getObject()
     p.name = "tom"
     console.log(p.name);  //"tom"
    

3.模板字符串

 支持换行,支持用${}嵌入变量
 

4.解构赋值 将多条赋值表达式缩为一条表达式

  1. 数组的解构赋值
     let [a,b,c] = [1,2,3]
     console.log(a,b,c);//1 2 3
				
     [a,b] = [b,a]
     console.log(a,b);//2 1
  1. 对象的解构赋值
	let {name,age} = {age:10,name:"tieniu"}
	console.log(name,age);//10 "tieniu"
  1. 解构赋值传参
	let person ={name:"Bob",age:20,sexx:"w"}
	
        //原始写法
        function getName(obj){
		return obj.name
	}
        
        //解构写法 {}代表一个对象,{name}表示传递实参为对象,但接收到的是解构后的name属性
        function getName2({name}){		
            return name
	}