首页 新闻 搜索 专区 学院

Javascript 这个是什么写法

0
悬赏园豆:15 [已解决问题] 解决于 2020-02-29 17:46

代码如下:

 <script> 
    var a = 1 
    var  b = 2
    var  c = 3
    var  obj = {
        a,
        b,
        c
    }
    console.log(obj)  
</script> 

IE浏览器这样使用会报错

Cgrain的主页 Cgrain | 小虾三级 | 园豆:1089
提问于:2020-02-29 11:15
< >
分享
最佳答案
0

试试改成下面的写法

var obj = {
    a: a,
    b: b,
    c: c
}
收获园豆:5
dudu | 高人七级 |园豆:38941 | 2020-02-29 11:38

在谷歌,Edge浏览器中,这种写法都是可以了,但是在IE浏览器就会出现错误
想问一下,这种 写法 的试用规则,假如不支持IE,那局限性有点大

Cgrain | 园豆:1089 (小虾三级) | 2020-02-29 11:46

@Cgrain: 具体报什么错?

dudu | 园豆:38941 (高人七级) | 2020-02-29 11:47

@dudu:

Cgrain | 园豆:1089 (小虾三级) | 2020-02-29 12:01

@Cgrain: 我在 IE 在测试过了,上面加上冒号的写法是可以的。

var a = 1;
var b = 2;
var c = 3;
var obj = {
    a: a,
    b: b,
    c: c
};
console.log(obj);
dudu | 园豆:38941 (高人七级) | 2020-02-29 16:38

@dudu: 我看看是不是需要什么东西转换一下,这个是新语法,现在前端越来越神奇了

Cgrain | 园豆:1089 (小虾三级) | 2020-02-29 17:45
其他回答(2)
0

你写的这种就是dudu写的完整版本,在js中,key与value变量相同,可以直接缩写成{a,b,c}
这种写法是不存在兼容问题的,你要确认下你有没有写错

收获园豆:5
沉睡的木木夕 | 园豆:13 (初学一级) | 2020-02-29 14:59

你可以试一下,在ie是不行的...

支持(0) 反对(0) Cgrain | 园豆:1089 (小虾三级) | 2020-02-29 17:42

@Cgrain: 我这边是mac,只能去公司试,在我印象中这个好像不是es2015才有的,如果是对象解构,那也是es6。
谷歌浏览器害人,好久没在 ie10 以下写js了 哈哈

支持(0) 反对(0) 沉睡的木木夕 | 园豆:13 (初学一级) | 2020-03-01 13:27

@沉睡的木木夕:

一不小心就炫富了

支持(0) 反对(0) Cgrain | 园豆:1089 (小虾三级) | 2020-03-01 14:15

@Cgrain: ie11都不行,chrome没问题 哈哈,看来ie还是得用保守的写法,要么就用babel转换咯

支持(0) 反对(0) 沉睡的木木夕 | 园豆:13 (初学一级) | 2020-03-02 10:35
0

这是es2015的语法,你的IE不支持这种语法当然会报错,当前流行的做法是使用babel这类工具转换一下

收获园豆:5
by.Genesis | 园豆:1777 (小虾三级) | 2020-02-29 17:10

是IE不支持,还是我的IE不支持..

支持(0) 反对(0) Cgrain | 园豆:1089 (小虾三级) | 2020-02-29 17:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册