wex5vscode es6 语法支持es6语法吗

本文出自汗血宝马,转载时请注明出处及相应链接。
本文永久链接: http://www.caotama.com/43060.html
Ɣ回顶部在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
很想学一下ES6,感觉JS终于有板有眼的开始像个“正经”编程语言了。
可是目前的主流浏览器对它支持的如何?不得不提的是WINDOWS下的IE用户。。提到IE就蛋疼。现在一般都兼容IE的哪个版本?我想让IE低版本的用户狗带:D 太低偏低的都TM不管了。
听听大家的意见,ES6做网站项目能够开始应用了吗?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
关于浏览器的兼容情况,可以访问进行查询。
目前的主要方式还是通过使用Babel编译来解决兼容性问题。
我们目前使用Babel将ES6的代码兼容到了IE8,但这是在放弃某些新特性的条件下(例如export * from "xxx"等)。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
可以用webpack+babel进行编译。不过即使编译了,IE低版本也不支持
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
主流浏览器都已经实现了ES6的支持,问题就在与IE,对于IE,我们可以引入一个转换文件,去npm上下载babel,完成后可以看到一个js文件叫做browser.min.js,这个文件就是将ES6语法转为通用的ES5语法的。建议项目中还是用ES5稳妥。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
主流浏览器支持大部分6的语法了,有些还是不支持。目前的主流做法还是用babel编译成5.
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
主流浏览器都支持 ES6(的绝大多数功能)了。
主流浏览器的旧版本还不完全支持。
很多用户还没有升级(比如 iOS 就得升系统)。
因而还得编译成 ES5
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
可以使用babel进行编译,但是babel只是允许你使用最新最酷炫的JavaScript语法,但对于尚未实现es6功能的浏览器还是无能为力
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
代码可以用ES6写 但还是需要编译后发布
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
可以用babel来把es6编译成es5的语法
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
一般都是编译后再执行的,兼容性考虑
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
能用上ie,说明也能用上chrome
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
讨厌ie可以,别骂人,贫苦地区的人们能用上ie就不错了
该答案已被忽略,原因:
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。ES6新语法概览
ES6是JavaScript语言的新一代标准,加入了一些新的功能和语法,正式发布于2015年6月,亦称ES2015;该标准由ECMA(欧洲计算机制造联合会)的第39号技术专家委员会(TC39)制订,ES7正在制订中,据称会在2017年发布。
箭头函数、this
ES6中可以使用 =& 作为函数表达形式,极简风格,参数+ =& +函数体。
var foo = function(){return 1;};
let foo = () =& 1;
let nums = [1,2,3,5,10];
let fives = [];
nums.forEach(v =& {
if (v % 5 === 0)
fives.push(v);
console.log(fives); //[5,10]
箭头函数中的 this 指的不是window,是对象本身。
function aa(){
this.bb = 1;
setTimeout(() =& {
this.bb++; //this指向aa
console.log(this.bb);
let、const
ES6 推荐在函数中使用 let 定义变量
const 用来声明一个常量,但也并非一成不变的
let 和 const 只在最近的一个块中(花括号中)有效
var a = 1;
let a = 2;
console.log(a); //2
console.log(a); //1
const A = [1,2];
A.push = 3;
console.log(A); //[1,2,3]
A = 10; //Error
ES6中增加了类的概念,其实ES5中已经可以实现类的功能了,只不过使用Class实现可以更加清晰,更像面向对象的写法。
class Animal {
constructor(){
console.log('我是一个动物');
class Person extends Animal {
constructor(){
console.log('我是一个程序员');
let aa = new Person();
//我是一个动物
//我是一个程序员
解构赋值是ES6中推出的一种高效、简洁的赋值方法
没啥说的,直接上代码:
//通常情况下
var first = someArray[0];
var second = someArray[1];
var third = someArray[2];
//解构赋值
let [first, second, third] = someArray; //比上面简洁多了吧
//还有下面例子
let [,,third] = [1,2,3];
console.log(third); //3
let [first,...last] = [1,2,3];
console.log(last); //[2,3]
//对象解构
let {name,age} = {name: &lisi&, age: &20&};
console.log(name); //lisi
console.log(age); //20
let {ept} = {};
console.log(ept); //undefined
Rest + Spread
function f(x, ...y) {
return x * y.length;
f(3, &hello&, true) == 6
function f(x, y, z) {
return x + y + z;
f(...[1,2,3]) == 6
对象字面量扩展
可以在对象字面量里面定义原型
定义方法可以不用function关键字
直接调用父类方法
//通过对象字面量创建对象
var human = {
breathe() {
console.log('breathing...');
var worker = {
__proto__: human, //设置此对象的原型为human,相当于继承human
company: 'freelancer',
console.log('working...');
human.breathe();//输出 ‘breathing...’
//调用继承来的breathe方法
worker.breathe();//输出 ‘breathing...’
模版字符串
ES6中提供了用反引号`来创建字符串,里面可包含${…}等
`This is a pretty little template string.`
`In ES5 this is
not legal.`
let name = &Bob&, time = &today&;
`Hello ${name}, how are you ${time}?`
Iterators(迭代器)
ES6 中可以通过 Symbol.iterator 给对象设置默认的遍历器,直到状态为true退出。
var arr = [11,12,13];
var itr = arr[Symbol.iterator]();
itr.next(); //{ value: 11, done: false }
itr.next(); //{ value: 12, done: false }
itr.next(); //{ value: 13, done: false }
itr.next(); //{ value: undefined, done: true }
Generators
ES6中非常受关注的的一个功能,能够在函数中间暂停,一次或者多次,并且之后恢复执行,在它暂停的期间允许其他代码执行,并可以用其实现异步。
Run-Stop-Run...
function *foo(x) {
var y = 2 * (yield (x + 1));
var z = yield (y / 3);
return (x + y + z);
var it = foo( 5 );
console.log( it.next() );
// { value:6, done:false }
console.log( it.next( 12 ) );
// { value:8, done:false }
console.log( it.next( 13 ) );
// { value:42, done:true }
generator能实现好多功能,如配合for...of使用,实现异步等等,我在这里就不多说了,
for…of && for…in
for…of 遍历(数组)
let arr = [1,2,3];
for (let itr of arr) {
console.log(itr); //1 2 3
for…in 遍历对象中的属性
let arr = [1,2,3];
arr.aa = 'bb';
for (let itr in arr) {
console.log(itr); //0 1 2 aa
Map + Set + WeakMap + WeakSet
Set 对象是一组不重复的值,重复的值将被忽略,值类型可以是原始类型和引用类型
WeakSet是一种弱引用,同理WeakMap
var s = new Set();
s.add(&hello&).add(&goodbye&).add(&hello&);
s.size === 2;
s.has(&hello&) === true;
var m = new Map();
m.set(&hello&, 42);
m.set(s, 34);
m.get(s) == 34;
// Weak Maps
var wm = new WeakMap();
wm.set(s, { extra: 42 });
wm.size === undefined
// Weak Sets
var ws = new WeakSet();
ws.add({ data: 42 });
Proxy可以监听对象身上发生了什么事情,并在这些事情发生后执行一些相应的操作。
//定义被侦听的目标对象
var engineer = { name: 'Joe Sixpack', salary: 50 };
//定义处理程序
var interceptor = {
set: function (receiver, property, value) {
console.log(property, 'is changed to', value);
receiver[property] = value;
//创建代理以进行侦听
engineer = Proxy(engineer, interceptor);
//做一些改动来触发代理
engineer.salary = 60;
//控制台输出:salary is changed to 60
Symbol 是一种新的数据类型,它的值是唯一的,不可变的。ES6 中提出 symbol 的目的是为了生成一个唯一的标识符,不过你访问不到这个标识符.
var sym = Symbol( &Symbol& );
console.log(typeof sym); // symbol
如果要获取对象 symbol 属性,需要使用Object.getOwnPropertySymbols(o)
ES6 对 Promise 有了原生的支持,一个 Promise 是一个等待被异步执行的对象,当它执行完成后,其状态会变成 resolved 或者 rejected
Promises是处理异步操作的一种模式,之前在很多三方库中有实现,比如jQuery的 deferred 对象。当你发起一个异步请求,并绑定了.when(), .done()等事件处理程序时,其实就是在应用promise模式
function timeout(duration = 0) {
return new Promise((resolve, reject) =& {
setTimeout(resolve, duration);
var p = timeout(1000).then(() =& {
return timeout(2000);
}).then(() =& {
throw new Error(&hmm&);
}).catch(err =& {
return Promise.all([timeout(100), timeout(200)]);
想要了解promise实际应用等,
总之,ES6还是有很多棒棒的语法,有利于精简代码,高效开发;只不过一些低级别浏览器不支持,可以用Babel等工具把ES6转化成ES5,但是有些语法还是不够完善;但是在不久的将来,ES6一定会成为主流的。对了,还有ES7、8、9……
Feel free to repost but keep the link to this page please!
阅读(...) 评论()Summer_JX的博客
idea 设置支持es6语法
设置两处:第一处 : 第二处:这样就可以了。
没有更多推荐了,怎么解决一些浏览器不支持es6的语法的问题? - 简书
怎么解决一些浏览器不支持es6的语法的问题?
用babel转换器转换成es5的语法,一些vue.js 、 react 或angularjs等一些框架会用到es6的语法,这些框架是一些高度结构化的语法,而他们内部集成了babel转换器,所以不用担心浏览器之间的差异。
1、为什么ES6会有兼容性问题? 由于广大用户使用的浏览器版本在发布的时候也许早于ES6的定稿和发布,,而到了今天,我们在编程中如果使用了ES6的新特性,浏览器若没有更新版本,或者新版本中没有对ES6的特性进行兼容,那么浏览器肯定无法识别我们的ES6代码,好比浏览器根本看不...
因个人精力有限,暂停简书的维护,欢迎大家关注我的知乎https://www.zhihu.com/people/wei-wei-24-86-36/activities,会持续分享前端、Web开发相关文章 微信原文:2016年JavaScript领域中最受欢迎的“明星”们 Ja...
React React 和 Vue 有许多相似之处,它们都有: 使用 Virtual DOM 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件。 将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。 由于有着众多的相似处...
React React 和 Vue 有许多相似之处,它们都有: 使用 Virtual DOM 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件。 将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。 由于有着众多的相似处...
原文请点击 综合类 地址 前端知识体系 http://www.cnblogs.com/sb/p/3894452.html 前端知识结构 https://github.com/JacksonTian/fks Web前端开发大系概览 https://github...
公元日,北韩宣称已在人体上获得器官改造术的成功,顿时甚嚣尘上。他们宣称人们届时将不再恐惧外貌所带来的心理上的残缺,外观无痕变更将会带来历史性的改变。
首先,这种器官更变是建立在一种科学健康的基础上,使人们可以随意更改自己的外貌,其次,人造器官物美价廉...
姑娘,如果我熬过这次,我就去追你好吗?
第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有十一个字。 第一篇总有...
星期五 小雨
兵慌马乱的一天又过去了。晚上到家看到儿子在全神贯注的看动画片,我忍不住大吼“:作业都写完么?不是说好上学期间,星期一到星期四不可以看电视么!”小家伙面无改色的说“妈妈今天星期五,明天是星期六!”然后向我做个鬼脸。我顿时恍然大悟,...}

我要回帖

更多关于 phpstorm 支持es6语法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信