JavaScript 作为第一种编程语言?

标签 javascript programming-languages

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




10年前关闭。




我想学习如何编程,从头开始。我遇到了一个基于 JavaScript 的在线初学者类(class),似乎做得很好。然而,我的一个 friend 劝我不要参加这门类(class),认为我应该从 Visual Basic 或 C# 开始。他的理由是 JavaScript 显然不会强制你坚持高标准的编程最佳实践(它让你摆脱太多),因此它可能会导致初学者养成不良的编程习惯。你同意?这真的有那么大的问题吗?你不能从 JavaScript 开始,然后添加一种需要更严格的低级语言吗?提前感谢您的建议!

最佳答案

JavaScript 是我在世界上最喜欢的编程语言,但它可能是 中的一种最差开始学习的编程语言。每个 Angular 落都有隐藏的细微差别。例如函数可以用四种不同的方式调用(最后两个组合在一起),每一种都会影响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 

还有一个事实是,虽然它不支持类,但它确实希望开发人员认为它支持:
var p = new Person(); //Person's a class, right?

当需要创建对象时,您有很多选项可供选择:
function Person(name){
    this.name = name;
}
var p = new Person("Adam");
var p = { name: "Adam" };
function createPerson(name){
    var that = {};
    that.name = name;
    return that;
}
var p = createPerson("Adam");

当然,继承将完全不同,具体取决于您选择上述哪个。

将所有这些与函数范围相结合,没有编译器指出明显的错误,将分号插入 创建 错误,我强烈建议您从更传统的语言开始,如 C# 或 Java。

关于JavaScript 作为第一种编程语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8783856/

相关文章:

javascript - onload后加pre标签不生效

compiler-construction - 有没有办法创建在硬件中实现的高级语言解释器?

javascript - 从 php 返回错误到 dropzone.js

javascript - AngularJS 不编译 html

data-structures - "sums-and-products"数据结构是什么?

c# - using关键字的动态

c++ - C 和 C++ 之间的主要区别是什么?您什么时候会选择一个而不是另一个?

java - 编译时类型和运行时类型之间存在差异的原因是什么?

javascript - Webgl sylvester.js glUtils.js 权限

javascript - 在 Django 的 ajax POST 期间禁止(CSRF token 丢失或不正确。)