ES6的基础知识总结
一. ES6
- ES6中定义变量使用 let/const
- let
- 使用let定义的变量不能进行"变量提升"
- 同一个作用域中,let不能重复定义相同的变量名
- 使用var在全局作用域中定义的变量相当于给window增加了一个私有的属性,但是使用let定义的变量和window没有任何的关系
- const
- 除了拥有let的那些特点之,const定义的变量是一个恒定的值(常量),存储的值是不能进行改变的
- 块级作用域
- ES5中的作用域只有两种
- 全局作用域
- 函数执行形成的私有作用域
- ES6中的作用域多加了一种
- 块级作用域:基本上凡是被"{<js code>}"包起来的都是块级作用域,块级作用域和之前学习的私有作用域一样,保护里面的私有变量不受外界的干扰;而且作用域链机制和之前相同
- 每一次循环都会形成一个块级作用域,而i是每一个私有作用域中的私有变量
- 块级作用域:基本上凡是被"{<js code>}"包起来的都是块级作用域,块级作用域和之前学习的私有作用域一样,保护里面的私有变量不受外界的干扰;而且作用域链机制和之前相同
- ES5中的作用域只有两种
- 箭头函数
- function () {};
- () => {};
- let fn(a=0,b=0) =>a+b
- 可以给形参设置默认值,而不是undefined
- 箭头函数中的this会继承父级作用域中的this,例如在定时器中的回调函数,或自执行函数,不再是window,而是继承
- 真实项目中混用箭头函数和普通函数,视情况选用
- 箭头函数没有arguments,
- 类
- 类的创建
class Fn{
//类,其中可以定义实例的私有属性
constructor(){ }
//公有的方法
eat(){ }
//作为类的私有属性
static say(){ }
}- 类的继承(寄生组合式继承)
class fn2 extends Fn{
constructor(){
//指的是fn2
super();//继承了父类实例的私有属性
}
//继承父类的公共方法
//不能继承父类的私有属性
} - 对象中增加函数属性
- 直接函数名(){},不需要用键值对的方式
- 对象的解构赋值需要保证变量名和属性名一致才可以获取对应位置的值(默认情况下)
- let {a:x,b:u,x;z}=obj 相当于在给原有的属性名设置别名
- 扩展运算符"..."
let ary=["ss",12,21];
let [a,...b]=ary
console.log(a)//->"ss"
let fn=(info,...scoreAry){
//可以弥补arguments的缺失,接受实参
}
ES6
- 其实就是对ES5的一个完善
- 不是所有的浏览器都兼容,低版本浏览器就不兼容
- 目前项目中使用ES6非常多(React大部分开发者都是基于ES6写的),因为ES6非常的方便
- 我们需要把不兼容的ES6转换为兼容的ES3/ES5代码 =>"Babel"
- 块级作用域 从字面量理解 {}包含的就是一个块级作用域
- let 声明只在当前块级作用域起作用的变量
- 利用块级作用域理解let
- const 常量 一旦定义了就不能改变的变量
- 如果常量的值是基本数据类型的值就不能变
- 如果常量的值是引用数据类型它的引用指针就不能变
var a=1;//在es5中,a是一个全局变量,相当于给window自定义了一个属性a,window.a,在es6中,它对全局对象window和全局作用域实现分离,但是为了保证兼容性,依然保留var声明的全局变量的特性,利用let声明块级变量来实现的只是相当于一个全局变量
ES6的基础知识总结的更多相关文章
- es2015(es6)基础知识整理(更新中...)
1.let let可以声明块级作用域变量 'use strict'; if (true) { let app = 'apple'; } console.log(app); //外面是访问不到app的 ...
- ES6的基础知识(一)
1.ECMAScript 6.0(以下简称ES6). 2.ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的其中一种实现. 3.对ES6支持的浏览器:超过 90% ...
- es6 generator 基础知识
1.定义和使用 function *gen() { return 'first generator'; } // 有点类似类的实例化过程 let generatorResult = gen() // ...
- javascript基础知识笔记-自用
笔记内容根据个人基础知识不足不明白之处做的记录.主要看的:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript 1.变量,变量的名字又叫标识符 ...
- React Native 入门基础知识总结
中秋在家闲得无事,想着做点啥,后来想想,为啥不学学 react native.在学习 React Native 时, 需要对前端(HTML,CSS,JavaScript)知识有所了解.对于JS,可以看 ...
- 快速掌握JavaScript面试基础知识(三)
译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...
- 快速掌握JavaScript面试基础知识(二)
译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...
- es 模块的基础知识,深度了解
// 一模块的基础知识 /** * export :用于模块输出的出口 * import :文件引入的入口 */ // 1,第一种方式使用export方式输出 var a = 'a'; var b = ...
- java基础知识学习笔记
本文知识点以js为参照.对比分析得出笔记.JavaScript之所以叫JavaScript是打算借助java推广自己.虽然都是开发语言,但JavaScript一开始主要运行在 客户端,而java主要运 ...
随机推荐
- 带你玩转Visual Studio——性能分析与优化
找到性能瓶颈 二八法则适合很多事物:最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的.在程序代码中也是一样,决定应用性能的就那20%的代码(甚至更少).因此优化实践中,我们将精力 ...
- Vijos——T1406 拉力赛
https://vijos.org/p/1460 描述 车展结束后,游乐园决定举办一次盛大的山道拉力赛,平平和韵韵自然也要来参加大赛. 赛场上共有n个连通的计时点,n-1条赛道(构成了一棵树).每个计 ...
- 指尖上的电商---(10)SolrAdmin中加入多核
在Solr中有的时候,我们并不仅仅是须要一种形式的索引文件.可能须要多种不同数据的索引文件.这时我们就能够在同一个Solr以下创建 多核. 比方,我们在solr以下想把产品信息和分类信息各存放一个索引 ...
- android开发使用SQLite之写日记
使用数据库实现对数据的存储. 以下上一个小样例,写日记. 效果例如以下: 当LIstView中没有数据显示时,我们须要告诉用户没有数据. 方法有二: 1. activity继承Li ...
- Get Started with Git and Team Services
https://www.visualstudio.com/en-us/docs/git/gitquickstart Visual Studio查看日志 LocalHistory和Incoming是拆开 ...
- 洛谷P2891 [USACO07OPEN]吃饭Dining
题目描述 Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she w ...
- android学习笔记五。1、Service深入学习
一.Service,服务是没有界面而在后台长期运行的程序,可以看做是后台的Activity. 1.在Android中按返回键退出一个应用并不会(内存充足时)直接销毁一个进程,所以其中的子线程也可以在后 ...
- Kinect 开发 —— 语音识别(上)
Kinect的麦克风阵列在Kinect设备的下方.这一阵列由4个独立的水平分布在Kinect下方的麦克风组成.虽然每一个麦克风都捕获相同的音频信号,但是组成阵列可以探测到声音的来源方向.使得能够用来识 ...
- Web开发中,使用表格来展示每个角色对应的权限
通过表格这种方式,来展示角色和权限之间的关系,挺好的.还有很多场景,都可以用这种方式. 角色权限表 权限 系统管理员 文章管理员 相册管理员 留言管理员 个人信息管理 查看个人信息 √ √ √ √ 编 ...
- 03009_SQL注入问题
1.注入问题 (1)假设有登录案例SQL语句如下: SELECT * FROM 用户表 WHERE NAME = 用户输入的用户名 AND PASSWORD = 用户输的密码; (2)此时,当用户输入 ...