-
ES6学习指南
查看全部 -
ES6思维导图
查看全部 -
带你入坑ES6
查看全部 -
freeze也只能冻结表层,内部对象的值无法冻结仍然可以改变
自定义深层冻结无法修改的函数
function myfreeze(obj){
Object.freeze(obj)
Object.keys(obj).forEach(function(key){
if(typeof obj[key] === 'object'){
myfreeze(obj[key])
}
})
}
查看全部 -
JS V.S. ES
JS是一种编程语言,ES是一种标准。JS是实现ES标准的语言。
ES6新特性——const
不允许重复声明;
定义的变量不属于顶层对象window;
不存在变量提升;
暂时性死区;
块级作用域;
如果const定义的是引用类型,则变量的值可以改变。如果不想改变,使用Object.freeze(obj)冻结对象(但是这个方法只能浅层冻结,如果对象里面还有对象,则需要自己写一个递归方法去freeze对象)
定义变量优先使用const
ES6新特性——箭头函数
箭头函数里面没有this,如果用的话会去上级作用域中去找,这时的this指向跟之前的普通函数中的this指向是不同的;所以,箭头函数作为事件的回调函数,在this的使用上会有一些问题;
同理,定义对象属性的方法时使用箭头函数也会有问题;
不能在箭头函数中使用arguments;
不能使用箭头函数作为构造函数;
不能使用箭头函数作为原型下的方法
ES6新特性——解构赋值
使用场景:
函数参数
函数返回值
变量互换
JSON应用
Ajax请求应用
解决ES6兼容问题
BABEL
ES6官网
http://www.ecma-international.org/ecma-262/6.0/
老师总结电子书:
http://es.xiecheng.live/
查看全部 -
CONST
1、不允许重复声明
2、不属于顶层对象window
3、不存在变量提升
4、暂时性死区
5、块级作用域
查看全部 -
const 声明常量,在一开始就要进行初始化;
var声明的对象属于顶层对象window,可以通过window.x去访问(不好,污染全局变量);const声明的常量则不行
const声明的代码,必须先声明在使用不存在变量提升,这样更安全;
const特点:不许重复声明,不属于顶层对象window,不存在变量提升,暂时性死区(先定义后调用,定义之前的区域它是死掉的),块级作用域
查看全部 -
步骤
npm init -y
npm i -D bable-preset-env bable-cli
.bablelrc
{
"presets": ["env"]
}
bable src/index.js -o dist/index.js 文件转化
bable src -d dis 文件夹转化
bable src -w -d dis
-o输出的意思
-d转化
-w监控的意思
查看全部 -
在箭头函数里其实没有this,如果当前作用域内有this,它会沿着当前作用域链向上层作用域去找
查看全部 -
const 和 let
优先用const, 如果值需要被改变则用let;查看全部 -
在ES3里边声明常量(只读不能改变值)
Object.defineProperty(window,'es',{ value: 'es6', writable: false })
查看全部 -
JSON.parse(object);结果返回一个对象
用于:
函数参数
函数返回值
变量互换
JSON应用
Ajax请求应用
查看全部 -
解构赋值:等号两边的类型要一样
const course={ name:'es6' ,price:500 }
const { name,price} = course; (对象对对象)
const coursearr =['es6,'es7','es8'];
const [a,b,c] = coursearr; (数组对数组)
查看全部 -
const a=document.querySelector('#id_name');类似于
var a=document.getElementById('id_name');
给元素绑定事件:a.addEventListener();
把事件的回调函数用箭头函数写;
用箭头函数去定义对象的方法;
不能使用arguments///console.log(arguments) 能够取到当前方法的形参的值
不能使用箭头函数构造函数
箭头函数不能定义原型下的方法
查看全部
举报