use*_*885 2 javascript programming-languages
我想从头开始学习如何编程.我遇到了一个基于JavaScript的在线初学者课程,看起来做得非常好.然而,我的一个朋友劝我不要参加这门课程,认为我应该从Visual Basic或C#开始.他的理由是JavaScript显然不会强迫你遵守高标准的编程最佳实践(它可以让你侥幸逃脱),因此它可能会导致初学者养成糟糕的编程习惯.你同意吗?这真的是一个大问题吗?你不能从JavaScript开始,然后添加一个需要更严格的低级语言吗?提前感谢您的建议!
JavaScript是我最喜欢的编程语言,但它可能是开始学习的最糟糕的编程语言之一.每个角落都有隐藏的细微差别.例如,可以用四种不同的方式调用函数(最后两种方法组合在一起),每种方式this都会影响等于的内容
foo(); //this = global object or undefined in strict mode
obj.foo(); //this = obj
new Foo(); //this = object inheriting from Foo's prototype
foo.call(lala, 12, 3);
foo.apply(lala, [12, 3]); //this = lala
Run Code Online (Sandbox Code Playgroud)
然后有一个事实,虽然它不支持类,但它真的希望开发人员认为它确实:
var p = new Person(); //Person's a class, right?
Run Code Online (Sandbox Code Playgroud)
当需要创建对象时,您可以选择以下多种选项:
function Person(name){
this.name = name;
}
var p = new Person("Adam");
Run Code Online (Sandbox Code Playgroud)
var p = { name: "Adam" };
Run Code Online (Sandbox Code Playgroud)
function createPerson(name){
var that = {};
that.name = name;
return that;
}
var p = createPerson("Adam");
Run Code Online (Sandbox Code Playgroud)
当然,继承将完全不同,具体取决于您选择的上述哪一项.
将所有这些与功能范围相结合,没有编译器指出明显的错误,分号插入为您创建错误,我强烈建议您从更传统的语言开始,如C#或Java.