所以我是我大学班级的助教,我对如何为绝对初学者程序员提供数据类型有一些分歧(其中大多数从未编程过).我的老师告诉学生他们必须严格使用构造函数来创建原始数据类型,如数字和字符串,她的理由是将JavaScript视为强类型,这样学生将习惯于未来的语言.我理解为什么,但我认为它有不好的权衡.
var num = new Number(10); // This is encouraged.
var num = 10; // This is discouraged (students will lose points for doing this).
Run Code Online (Sandbox Code Playgroud)
我的导师没有对这些进行区分,并且学生被告知将他们视为原始的数字,弦乐等等.虽然我相信至少对于那些datatype.valueOf()
在必要时不知道更好使用的初学者,并且不知道到目前为止还有什么东西.文字符号(并且我认为它)更合适和更标准,另一种方式会引起混淆.由于构造函数符号存在一致性问题,因为它们是对象(我不希望学生担心这一点).例如,这些对初学者没有意义:
var num1 = new Number(1);
var num2 = new Number(1);
if(num1 === num2) ... ; // Does not run.
if(num1 == num2) ... ; // Does not run.
if(num1 == 1) ... ; // But this does.
var num2 = new Number(2);
if(num1 < num2) ... ; // So does this.
switch(num1){ …
Run Code Online (Sandbox Code Playgroud)