ES6 常用语法
什么是ES6ECMAScript 6 简称ES6,在2015年6月正式发布~? ECMAScript 是JavaScript语言的国际标准。 我们本着二八原则,掌握好常用的,有用的~能让我们更快的上手~~~ 1? 声明变量const? let? varES6以前 var关键字来声明变量,无论声明在何处都存在变量提升这个事情~~会提前创建变量~ 作用域也只有全局作用域以及函数作用域~ 所以变量会提升在函数顶部或全局作用域顶部~ let 关键字表示变量,const 表示常量。都是块级作用域,比如一个函数内部,代码块{}内部~
global = "global"
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 函数内变量的提升</span>
<span style="color: #0000ff;">function</span><span style="color: #000000;"> aa() {
</span><span style="color: #0000ff;">if</span>(1<span style="color: #000000;">){
</span><span style="color: #0000ff;">var</span> test = "test"<span style="color: #000000;">
}
console.log(test)
}
</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> bb() {
</span><span style="color: #0000ff;">if</span>(1<span style="color: #000000;">){
let test </span>="test"<span style="color: #000000;">;
}
console.log(test)
}
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 在for循环中 let</span>
<span style="color: #0000ff;">var</span> arry =<span style="color: #000000;"> [];
</span><span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">var</span> i = 0; i<10; i++<span style="color: #000000;">){
console.log(i)
arry[i] </span>= <span style="color: #0000ff;">function</span><span style="color: #000000;"> () {
console.log(i)
}
}
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 相当于</span>
<span style="color: #008000;">//</span><span style="color: #008000;"> var arry = [];</span>
<span style="color: #008000;">//</span><span style="color: #008000;"> var i;</span>
<span style="color: #008000;">//</span><span style="color: #008000;"> for(i = 0; i<10; i++){</span>
<span style="color: #008000;">//</span><span style="color: #008000;"> console.log(i)</span>
<span style="color: #008000;">//</span><span style="color: #008000;"> arry[i] = function () {</span>
<span style="color: #008000;">//</span><span style="color: #008000;"> console.log(i)</span>
<span style="color: #008000;">//</span><span style="color: #008000;"> }</span>
<span style="color: #008000;">//</span><span style="color: #008000;"> }</span>
arry[5<span style="color: #000000;">]()
const name </span>= "gaoxin"<span style="color: #000000;">;
const name </span>= "随意"
<span style="color: #008000;">//</span><span style="color: #008000;"> 报错</span></pre>
2? 模板字符串ES6引入了反引号`` 3? 函数箭头函数,是函数的快捷写法,类比Python的匿名函数 lambda。 最直观的三个特点 -- 不需要function关键字来创建函数 -- 省略return关键字 -- 继承当前上下文的this关键字(因为箭头函数的调用者是当前上下文,跟普通函数区别开)
x => x+1
x+1
<span style="color: #0000ff;">function<span style="color: #000000;"> test() {
console.log(<span style="color: #0000ff;">this<span style="color: #000000;">) }; let obj =<span style="color: #000000;"> {a: 1<span style="color: #000000;">,test: test,}; let obj2 =<span style="color: #000000;"> {b: 3<span style="color: #000000;">,obj: obj,}; obj.test(); 4? import 和 exportimport 导入模块、export导出模块
export name = "gaoxin" age = "18" 1
<span style="color: #008000;">//<span style="color: #008000;"> test.js
import {name,aa} from "./main"<span style="color: #000000;"> console.log(name) console.log(age) console.log(aa()) <span style="color: #008000;">//<span style="color: #008000;"> 整个模块导入 把模块当做一个对象<span style="color: #008000;"> //<span style="color: #008000;"> 该模块下所有的导出都会作为对象的属性存在 import * as obj from "./main"<span style="color: #000000;"> console.log(obj.name) console.log(obj.age) console.log(obj.aa())
app = });
export <span style="color: #0000ff;">default<span style="color: #000000;"> app <span style="color: #008000;">//<span style="color: #008000;"> test.js<span style="color: #008000;"> //<span style="color: #008000;"> import app from "./main" import my_app from "./main" 5? 数据解构?数据的解构类似于我们python里面的**解包 const people ="提莫"2= ["瑞文","刀妹"const { name,age } =<span style="color: #000000;"> people
console.log(name) console.log(age) const [name1,name2] =<span style="color: #000000;"> person console.log(name1) console.log(name2) 6? class extends superES6 引入了关键字class来定义一个类,constructor是构造方法,this代表实例对象。 类之间通过extends继承,继承父类的所有属性和方法。 super关键字,它代指父类的this对象,子类必须在constructor中调用super()方法, 否则新建实例时会报错,因为子类没有自己的this对象。调用super()得到this,才能进行修改。 .type = "animal".type + "says" +let animal = <span style="color: #0000ff;">new<span style="color: #000000;"> Animal()
animal.says( "hello"<span style="color: #000000;">)class Dog extends Animal{ } } let dog = <span style="color: #0000ff;">new<span style="color: #000000;"> Dog() 附 中文文档:? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |