01-es6

1、 let 定义变量

  1. 变量不能重复声明
  2. 不存在变量提升
  3. 块级作用域
  4. 不影响作用域链
		<script>
			// 1、变量不能重复声明
			let name="小李";
			let name="大敏";
			console.log(name);
			console.log(name);  //Identifier 'name' has already been declared
			
			//2.不存在变量提升
			 console.log(hobby);  //Cannot access 'hobby' before initialization
			 let hobby="看电影";
			
			// 3. 块级作用域 
			 // if else while for 
			 {
				 let boy="易烊千玺";
			 }
			 console.log(boy);  //boy is not defined
			 
			 //4.不影响作用域链
			 {
				 let who="小李";
				 function fn(){
					 console.log(who);
				 }
				 fn();     //小李 
			 }
			 fn();    //小李 
		</script>

let 块级作用域练习

		<style>
			div{
				display: inline-block;
				background-color: pink;
				width: 80px;
				height: 25px;
			}
		</style>
	</head>
	<body>
		<p style="font-weight: bold;">点击切换颜色</p>
		<div></div>
		<div></div>
		<div></div>
	</body>
</html>
<script>
	// 1、获取元素
	  let items= document.getElementsByTagName("div");
	// 2. 遍历元素绑定事件
	for(let i=0; i<items.length;i++){
		items[i].onclick=function(){
			//3.改变颜色
			items[i].style.background="green";
		}
	}
	
     //等价于	
	{
		let i=0;
		items[i].onclick=function(){
			//3.改变颜色
			items[i].style.background="green";
		}
	}
	
	{
		let i=1;
		items[i].onclick=function(){
			//3.改变颜色
			items[i].style.background="green";
		}
	}
	  
	  {
	  	let i=2;
	  	items[i].onclick=function(){
	  		//3.改变颜色
	  		items[i].style.background="green";
	  	}
	  }
	  
</script>

2、const 常量

  1. 常量大写且一定要赋初始值
  2. 一旦赋值就不能修改
  3. 块级作用域
  4. .对于数组和对象的元素修改,不算对常量的修改 不会报错
		<script>
			// 1、常量大写且一定要赋初始值
			const SCHOOL="黑马程序员";
			
			//2 、一旦赋值就不能修改
			SCHOOL="尚硅谷";
			console.log(SCHOOL);   //Assignment to constant variable.
			
			// 3、块级作用域
			 {
				const PlAY="Song";
			}
			console.log(PlAY);   // PlAY is not defined
			
			
			 // 4.对于数组和对象的元素修改,不算对常量的修改 不会报错。
			 const TEMA=["HAHA","MING","LETMING"];
			 TEMA.push("小李");  //添加
			 console.log(TEMA);
			 TEMA=100;  // Assignment to constant variable.
		</script>

3、 解构赋值

ES6 允许按照一定模式从数组和对象中提取值、对变量进行赋值—>解构赋值

		<script>
			//ES6 允许按照一定模式从数组和对象中提取值、对变量进行赋值--->解构赋值
			 // 1.数组的结构
			 const ARR=["张三","李四","王五","赵六"];
			       //解构
			 let [three,four,five,six]=ARR;
			 console.log(three);  //张三
			 console.log(four);   //李四
			 console.log(five);  //王五
			 console.log(six);   //赵六
			 
			//2.对象的结构
			 const PEOPLE={
				 name: "张三",
				 age: 66,
				 hobby: function(){
					 console.log("打游戏");
				 }
			 };
			    //解构
			 let {name,age,hobby}=PEOPLE;
			 console.log(name);
			 console.log(age);
			 console.log(hobby);
		</script>

4、 字符串的声明方式[``]

  1. 内容中可以直接出现换行符
  2. 变量拼接 ${}
		<script>
			// es6 新增加了字符串的声明方式[``]   ''  ""
			// 1.声明
			let str=`我是一个字符串`;
			console.log(str);  
			
			//2.内容中可以直接出现换行符
			let name=`<ul>
			<lI>花花</lI>
			<lI>小白</lI>
			<lI>大黄</lI>
			<lI>大河</lI>
	      	</ul>`;
		
		 //3. 变量拼接  ${}
		   let ss="小李";
		   let love=`${ss}像个小傻子`; 
		   console.log(love) //小李像个小傻子
		   
		</script>

5、 简化对象的书写方式

		<script type="text/javascript">
			//允许在{}里面,直接写变量和函数 作为对象的属性和方法
			//简化
			let name="小李";
			let jishu=function(){
				console.log("会java");
			};
			
			const  people={
				 name,
				jishu,
				improve(){
					console.log("还会一点C++");
				}
			}
			console.log(people); 
		</script>

6、箭头函数

<script>
			//0:正常声明一个函数
			let fn=function(){
			}
			
			//1:箭头函数 省略function
			let fn2=(a,b)=>{
				return a+b;
			}
			//调用函数
			let result=fn2(2,4);
			console.log(result);
			
			
			//1 this 是静态的  始终指向函数声明时所在作用域下的this的值
			window.name="小李";
			const People={
				name: "花花"
			};
			
			function getName(){
				console.log(this.name); 
			};
			
			let getName2=()=>{
				console.log(this.name); 
			}
			//直接调用
			getName();   //小李
			getName2();  //小李
			
			//call 方法调用
			getName.call(People); //花花
			getName.call(People); //花花
		</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值