首页 > 试题广场 >

以下符合 ES6 写法的有:()

[单选题]
以下符合 ES6 写法的有:()
  • class Foo
    {
    	constructor() {return Object.create(null);}
    }
    Foo()
  • var m=1;
    export m;
  • export var firstName=’Michael’;
  • 在A模块中export{readFile}后,在B模块中import readFile from ‘A’可以获取到readFile
推荐
选 C

A、Fun() 把 class 当成方法来用? var fun = new Func() 这样用就对了
B、export 后面变量没加括号;
D、import readFile 没加括号,是导入 default 的用法,但是前面不是 export 为 default



export {name1,name2, …,nameN};
export {variable1asname1,variable2asname2, …,nameN};
export letname1,name2, …,nameN; // also var
export letname1= …,name2= …, …,nameN; // also var, const

export expression;
export default expression;
export default function (…) { … } // also class, function*
export default function name1(…) { … } // also class, function*
export {name1as default, … };

export * from …;
export {name1,name2, …,nameN} from …;
export {import1asname1,import2asname2, …,nameN} from …;

import defaultMember from "module-name";
import * as name from "module-name";
import { member } from "module-name";
import { member as alias } from "module-name";
import { member1 , member2 } from "module-name";
import { member1 , member2 as alias2 , [...] } from "module-name";
import defaultMember, { member [ , [...] ] } from "module-name";
import defaultMember, * as name from "module-name";
import "module-name";

有错误的话,请纠正
编辑于 2017-05-23 14:07:58 回复(5)

ES6

  • A:类必须使用new调用,否则会报错。这是它跟普通构造函数的一个主要区别,后者不用new也可以执行。
  • B:export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。
    // 报错
    export 1;
    // 报错
    var m = 1;
    export m;
    上面两种写法都会报错,因为没有提供对外的接口。第一种写法直接输出 1,第二种写法通过变量m,还是直接输出 1。1只是一个值,不是接口。正确的写法是下面这样。
    // 写法一
    export var m = 1;
    // 写法二
    var m = 1;
    export {m};
    // 写法三
    var n = 1;
    export {n as m};
  • D:A模块对外暴露了一个对象,引入的时候需要使用解构赋值
import {readFile} from ‘A'

编辑于 2021-03-17 09:48:39 回复(6)
选项B,export需要{}括起来要不然就使用选项c的写法也是可以的。




选项A错误是因为构造函数需要使用new来调用
constructor方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor方法,如果没有显式定义,一个空的constructor方***被默认添加。
constructor() {} 

constructor方法默认返回实例对象(即this),完全可以指定返回另外一个对象。

class Foo { constructor() { return Object.create(null); } } new Foo() instanceof Foo // false 

上面代码中,constructor函数返回一个全新的对象,结果导致实例对象不是Foo类的实例。

类的构造函数,不使用new是没法调用的,会报错。这是它跟普通构造函数的一个主要区别,后者不用new也可以执行。

class Foo { constructor() { return Object.create(null); } } Foo() 
// TypeError: Class constructor Foo cannot be invoked without 'new'
发表于 2017-06-03 11:23:13 回复(2)
A.定义了一个类,类的使用。而不是构造函数
B.不符合MDN中单个导出,应为导出列表写法,即export {m}
D.命名导出时,导入时必须相同的名称
发表于 2020-03-17 10:51:48 回复(0)
  • 选项A:类必须使用new调用,否则会报错。这是它跟普通构造函数的一个主要区别,后者不用new也可以执行。
            报错:Class constructor Foo cannot be invoked without 'new'  (没有new关键字,类无法被调用



//错误写法一:
export 1; //没有提供对外的接口,直接输出1
 
//错误写法二:
var m = 1;
export m; //虽然有变量m,但其实还是直接输出1,导致无法解构。
 
 
 
//正确写法一:
export var m = 1;//导出一个啥
 
//正确写法二:
var m = 1;
export { m }; //导出一个对象
 
//正确写法三:
var n = 1;
export { n as m }; //导出一个对象

  • 选项D:  A模块对外暴露了一个对象,引入的时候需要使用解构赋值   
                        在A模块中 export {  readFile  } 后,(注意:这里A模块导出的是一个对象
                        在B模块中 import {  readFile  } from ‘A’   可以获取到readFile。(注意:这里要给对象进行解构赋值
编辑于 2022-01-18 16:37:50 回复(0)

导出变量不同于到处fun或class需要加{}

发表于 2020-01-16 08:24:52 回复(0)
export{readFile} 下一文件引入应该解构赋值
发表于 2019-05-17 15:08:16 回复(0)
var可以在es56789甚至以后的n个版本用
发表于 2019-04-20 08:59:17 回复(0)
var就tm不符合es6,准确的说这道题没有正确答案
发表于 2023-09-09 15:54:57 回复(0)
A、es6中类相当于es5中的构造函数,但类需要new才能执行。
BC、都是按需导出的写法,但B中先声明变量再导出要写成export{m}。
D、可以改成两种,一种是
在A模块中export default{readFile}后,在B模块中import readFile from ‘A’
另一种是
在A模块中export{readFile}后,在B模块中import readFile from ‘A’

发表于 2022-07-08 00:04:40 回复(0)
可以参考这篇文章  解释的比较清晰 
发表于 2022-05-23 17:01:57 回复(0)
选项A:报错
Uncaught TypeError: Class constructor Foo cannot be invoked without 'new'

编辑于 2022-01-13 12:41:54 回复(0)
不是默认导出的模块,导入时记得要加一对大括号
发表于 2021-08-22 10:30:03 回复(0)
没人来吐槽一下 C 的 var 么😳
发表于 2021-05-19 20:16:23 回复(0)
class Foo
{
	constructor() {return Object.create(null);}
}
Foo()
其中,Foo是类,不能当成方法用。
export expression;
export default expression;
其他导入导出要加{  }

发表于 2020-10-26 15:00:39 回复(0)
单个导出是 export default
发表于 2020-10-20 11:50:00 回复(0)
D哪错了,求求大佬

发表于 2020-09-11 20:42:09 回复(0)
B选项应该改成export default吧? 此时只导出了一个变量,不能用export?
发表于 2019-08-01 22:07:27 回复(0)
有大佬知道B为什么不行呢
发表于 2019-06-15 10:43:24 回复(4)
var也行啊?
编辑于 2018-05-01 22:24:28 回复(1)
c中使用了var,而且使用的引号是中文引号‘’而不是英文引号'' 不过综合来看 ,确实应该选c
发表于 2017-09-28 15:49:05 回复(0)