Javascript 为什么有两种不同的Java脚本?

Javascript 为什么有两种不同的Java脚本?,javascript,Javascript,我正在学习JavaScript,但是教程根据资源的不同而有所不同。看起来JavaScipts是不同的,它有两种类型 那么,假设我们使用一个源代码,它们的代码如下: <html> <body> <p>Before the script...</p> <script> alert( 'Hello, world!' ); </script>

我正在学习JavaScript,但是教程根据资源的不同而有所不同。看起来JavaScipts是不同的,它有两种类型

那么,假设我们使用一个源代码,它们的代码如下:

<html>
    <body>
        <p>Before the script...</p>
        <script>
            alert( 'Hello, world!' );
        </script>
        <p>...After the script.</p>
    </body>
</html>

在脚本之前

警惕(‘你好,世界!’); …在剧本之后

但当我做教程的时候,比如说编解码器,他们没有任何html代码,没有正文,p,脚本。。。代码不进入html。像alert、onclick这样的函数非常流行,事实上,w3schools从这些函数开始,在Codecademy上没有这样的函数。这个代码行


document.getElementById('demo').innerHTML=Date()

它说它在javascript中很重要,但codecademy根本没有提到它!比如那些文档dot getElementById('demo')。它在做什么?如果它如此重要的话,为什么它在学校里随处可见,而不是在编解码器上?我在Codecademy上完成了整个JavaScript课程,但我仍然很困惑它为什么会如此不同? 我以前学习过Python,它与正确的JavaScript类似(我称正确的JavaScript为Codecademy上的一种,因为它的结构与Python非常相似) 所以奇怪的JavaScript(w3schools等上的JavaScript,而不是Codecademy上的JavaScript)通常有美元符号,比如这样的行

函数$(x){
返回文档.getElementById(x);
}

正确的JavaScript只在字符串插值中使用美元符号,就是这样,整个Codecademy教程没有我上面提供的所有奇怪的代码,这在其他web源代码中似乎非常重要。 我发现的所有YouTube教程也都使用了适当的JavaScript,只是声明变量、编写函数,比如普通编程语言,比如Python,但是像W3这样的教程中的HTML标记、警报、onclick、美元符号等又有什么用呢?谁能给我解释一下吗

是的,我很尴尬。考虑到这一点,我对Python和JavaScript的了解要高于初学者,但我无法理解不同的代码有什么不同,以及发生了什么


另外,谢谢大家的回答。我可能不清楚,但我不想让你们解释我发布的那些代码行的实际含义(和你们大多数人一样),但我主要想知道它为什么会如此不同,为什么会有这种差异,为什么会有两种不同类型的JavaScript?因此,我接受了正确的答案。

可以说有超过2个偶数

Javascript是为了在浏览器内部、DOM上下文中工作而开发的,但它也是一种独立于任何浏览器、任何HTML、任何DOM的编程语言


在HTML中,
标记用于javascript,但您也可以链接到javascript文件。

可以说有两个以上的标记

Javascript是为了在浏览器内部、DOM上下文中工作而开发的,但它也是一种独立于任何浏览器、任何HTML、任何DOM的编程语言


在HTML中,
标记用于javascript,但您也可以链接到javascript文件。

文档。getElementById
是DOM API的一部分,而不是javascript的一部分。如果您想与网页交互,您需要解析html并将其“转换”为DOM树状结构。例如,
document
在Node.js(服务器端JavaScript)中不存在,但如果您想测试前端代码,可以使用该库

标记是将JavaScript文件添加到html页面的一种方法。但使用JavaScript不需要html页面(可以使用我提到的Node.js)

关于这一点:

function $(x) {return document.getElementById(x);}

$
是普通变量和函数名,它是Prototype和jQuery库的遗留版本,它们将此作为API主入口点,并且非常简洁明了。

文档。getElementById
是DOM API的一部分,而不是JavaScript的一部分。如果您想与网页交互,您需要解析html并将其“转换”为DOM树状结构。例如,
document
在Node.js(服务器端JavaScript)中不存在,但如果您想测试前端代码,可以使用该库

标记是将JavaScript文件添加到html页面的一种方法。但使用JavaScript不需要html页面(可以使用我提到的Node.js)

关于这一点:

function $(x) {return document.getElementById(x);}
$
是普通变量和函数名,它是Prototype和jQuery库的传统,它们将此作为API主入口点,并且非常简短和干净。
标记只是一个html元素,它将此块的内容声明为javascript。 内容将由DOM范围内的浏览器执行

在javascript应用程序中,您不需要将javascript直接编码到DOM中,而是将JS文件包含/注入页面。

标签只是一个html元素,它将此块的内容声明为javascript。 内容将由DOM范围内的浏览器执行


在javascript应用程序中,您不会将javascript直接编码到DOM中,而是将JS文件包括/注入到页面中。

当您看到
getElement
时,通常是尝试从DOM树中查找元素,在您的情况下,它尝试查找id为
demo
的元素

你会找到这样的东西吗


对于code
document.getElementById('demo').innerHTML=new Date()
这将获取日期并将其设置为HTML#demo节点

对于
函数$(x){return document.getElementById(x);}
此函数试图复制选择DOM的jQuery函数。它的功能与上面的代码相同,但您键入的代码要少很多