-
前言
- 0. 前端工具
- 1. html
- 2. CSS
-
3. JavaScript 基础
-
3.1 JS简介
-
3.2 变量
-
3.3 变量的强制类型转换
-
3.4 运算符
-
3.5 流程控制语句:选择结构(if和switch)
-
3.6 流程控制语句:循环结构(for和while)
-
3.7 对象简介和对象的基本操作
-
3.8 基本数据类型vs引用数据类型
-
3.9 函数
-
3.10 作用域
-
3.11 this
-
3.12 对象的创建&构造函数
-
3.13 原型对象
-
3.14 数组简介
-
3.15 数组的四个基本方法&数组的遍历
-
3.16 数组的常见方法
-
3.17 数组的其他方法
-
3.18 内置对象:Date
-
3.19 内置对象(其他)
-
3.20 DOM操作
-
3.21 事件对象Event和冒泡
-
3.22 事件委托
-
3.23 BOM的常见内置方法和内置对象
-
3.24 原型链
-
3.25 常见代码解读
-
3.1 JS简介
- 4. JavaScript进阶
- 5. 前端基本功:CSS、DOM练习和 Javascript 特效
- 6. jQuery
- 7. HTML5和CSS3
- 8. 移动web开发
- 9. Ajax
- 10. Node.js和模块化
- 11. ES6
- 12. Vue基础
- 13. React基础
-
14. 前端面试
-
14.1 准备
-
14.2 页面布局
-
14.3 CSS盒模型及BFC
-
14.4 DOM事件的总结
-
14.5 HTTP协议
-
14.6 创建对象和原型链
-
14.7 面向对象:类的定义和继承的几种方式
-
14.8 跨域通信类
-
14.9 安全问题:CSRF和XSS
-
14.10 算法问题
-
14.11 浏览器渲染机制
-
14.12 js运行机制:异步和单线程
-
14.13 页面性能优化
-
14.14 前端错误监控
-
14.15 JavaScript高级面试:前言
-
14.16 模块化的使用和编译环境
-
14.17 ES6
-
14.18 虚拟DOM
-
14.19 MVVM
-
14.20 面试题整理
-
14.21 网友面经
-
14.22 面试技巧
-
14.23 推荐文章
-
14.24 计算机网络
-
14.25 web安全
-
14.26 其他
-
14.1 准备
- 15. 面试题积累
- 16. 前端进阶
- 17. 前端综合
- 18. 推荐链接
前言
ECMAScript 是 JS 的语言标准。而 ES6 是新的 JS 语法标准。
发展历史
20180303_1633.png
- 2015年6月,ES6正式发布。
ES6 的其他优势
使用 babel 语法转换器,支持低端浏览器
流行的库基本都是基于 ES6 构建。 React 默认使用 ES6 新源发开发。
ES6 的常用语法
ES6语法概览
块级作用域、字符串
对象扩展、解构
类、模块化等。
作用域:let 和 const
用
let
定义变量 ,替代 var用const 定义常量(定义后,不可修改)
作用域和 {}
举例:
let a1 = 'haha';
const name = `smyhvae`;
copy
模板字符串
我们以前让字符串进行拼接的时候,是这样做的:(传统写法的字符串拼接)
var name = 'smyhvae';
var age = '26';
console.log('name:'+name+',age:'+age); //传统写法
copy
这种写法,比较繁琐,而且容易出错。
现在有了 ES6 语法,字符串拼接可以这样写:
var name = 'smyhvae';
var age = '26';
console.log('name:'+name+',age:'+age); //传统写法
console.log(`name:${name},age:${age}`); //ES6 写法
copy
注意,上方代码中,倒数第二行用的是单引号,最后一行用的是反引号(在tab键的上方)。
函数扩展
ES6 中函数的用法:
参数默认值
箭头函数
展开运算符
定义和调用函数:(传统写法)
function fn1(name) {
console.log(name);
}
fn1('smyhvae');
copy
定义和调用函数:(ES6写法)
var fn2 = (name)=>{
console.log(name);
}
fn2('smyhvae');
copy
上面两端代码,执行的结果是一样的。
当然,也可以给上面这个函数的参数加一个默认值:
var fn2 = (name='enen')=>{
console.log(name);
}
fn2(); //参数用默认值 enen
fn2('smyhvae');
copy
比如说,1秒后执行一段代码,可以用箭头函数:
setTimeout(()=>{
console.log('something');
},1000);
copy
如果函数体只有一条 return 语句,那么大括号可以省略:
const myDouble = x=>x*2;
console.log(myDouble(5)); //打印结果为10
copy
箭头函数的好处:
简写代码
保持 this 的作用域