学习es6第一天

一、es6简介
    ECMAScript 是一个标准
    ECMAScript 5.1      es5     2011年发布
    es6就是es5的下一个版本,2015.6发布es6的第一版  es2015  ,2016.6发布es6的第二个版本  es2016  ,2017年发布es6的第三个版本,es2017
    es6 是涵盖了es2015,es2016,es2017等版本
    es6 是严格版的es5
    类似于html5 和Xhtml1.0
    "use strict";
二、es6基础语法
    1.  let
        es6新增的声明变量的关键字
        类似于var 但有所不同:
        不同:
            1) 作用域不同
                var声明的变量可以在大括号外调用,let声明的变量只能在代码块内部有效
                代码块:我们认为一个大括号可以封闭一个代码块
		eg: 
			for(var i=0; i<10; i++){
     				console.log(i);
 			}
 			console.log(i);//10

 			for(let i=0; i<5; i++){
     				console.log(i);
 			}
 			console.log(i);//报错 i is not defined

 			{
    				let a=10;
 			}
 			console.log(a);//报错 a is not defined
            2) 没有变量提升
            3) 暂时性死区
                使用let声明之前的变量都是不可用的
		eg:
 			var a=123;
 			if(1){
     				a='abc';//报错 a is not defined
     				console.log(a);//abc
     				let a;
 				//    结束暂时死区
     				console.log(a);//undefined
     				a=456;
     				console.log(a);//456
 			}
            4) 不允许重复声明
                let不允许在相同作用域内部重复声明同一个变量,所以也是不允许在函数中重新声明参数

                              eg:

			let b=10;
			let b=1;
			console.log(b);//Uncaught SyntaxError: Identifier 'b' has already been declared
2.块级作用域
    1) es5 只有全局作用域和函数作用域,没有块级作用域
	eg:
		var a='hello';
		function f() {
	     		//在这个函数中因为有var声明了a,所以其中所有的a都是这个局部作用域的a,与全局作用域的a='hello'没有关系
     			console.log(a);//undefined
			if(a){
				var a='你好';
			}
			console.log(a);//undefined
			}
		f();
    2) let 为 js增加了块级作用域
	eg:
		var a='hello';
		function f() {
			console.log(a);//hello
		if(a){
			let a='你好';
			console.log(a);//你好
		}
		console.log(a);//hello
		}
		f();
    3) es6 允许块级作用域嵌套
    4) 外层作用域无法读取内层作用域的变量
    5) 内层作用域可以定义与外层作用域的同名变量
	eg:
		{
			let a=1;
		{
			let a=2;
		{
             		let a=3;
            		console.log(a);//3
         	}
         	console.log(a);//2
     		}
     		console.log(a);//1
    6) IIFE被抛弃
    7) 块级作用域与函数声明
        es5 只允许在顶层作用域或函数作用域中声明函数,不能在块级作用域中声明函数
    8) do 表达式(暂时不能用)
        块级作用域是一个语句,将多个操作封装在一起,没有返回值
        在块级作用域以外,没有办法得到内部的值,除非是全局变量
        一个提案,使块级作用域可以变为表达式,也就是说可以返回值,就是使用do表达式
3. const常量
    1) const 声明一个常量,一旦声明,就不能被改变
    2) 常量一旦声明,必须立即初始化,不能留到以后赋值
    3) const本质
        const其实并不是值不让改变,而是变量指向的内存地址不得改动,对于基本数据类型,值就保存在变量指向的内存地址,所以不能被改变,但是对于对象类型,变量存储的是指针,const能保证这个指针不变,但是数据结构是可以改变的
        如果const定义一个数组,数组本身是可写的,但是要想将一个新的数组赋值给这个arr,就会报错
        const arr=[];
        arr.push('hello');//["hello"]
        console.log(arr);
        arr=['hello'];//报错 Uncaught TypeError: Assignment to constant variable.
4.顶层对象
    es5中顶层对象是window,顶层对象的属性与全局变量是等价的
    es6规定,var 和 function 命令是全局变量,依旧是顶层对象的属性,但是let和const,class命令的全局变量不属于顶层对象的属性,也就是说es6开始,全局变量逐渐与顶层对象的属性脱钩

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值