美文网首页
JavaScript入门

JavaScript入门

作者: 啃馒头的狼 | 来源:发表于2019-07-20 15:35 被阅读0次

js代码位置

首先是如何编写JavaScript代码,说到这,我们首先要来说明一个需要新人们关注的点,因为我们的js是一门跨平台的语言,所以说,我们的代码可以运行在不同的平台之上。这也就导致了可能相同的代码放在不同的平台运行就会有所出入。

这里面说的平台其实被称之为宿主环境

同时,代码在不同的平台上的运行方式也有所不同。
如果运行在服务端,那么更多的时候我们需要通过命令行的形式去运行,而如果是代码运行在客户端,则需要通过启动浏览器来运行代码。

  • 可以将js代码编写到标签的onclick属性中,
    示例:
<button onclick="alert('输出内容');">点击<button>

当我们点击按钮时js代码才会执行。

  • 可以将js代码写在超链接的href属性中,这样当点击超链接时,会执行js代码
    demo:
<a href="javascript:alert('点我干嘛');">点我一下</a>
<a href="javascript:;">可以去除点击超链接返回顶部的效果</a>

虽然可以写在标签的属性中,但他们属于结构与行为耦合,不方便维护,不推荐使用

  • 我们的js代码可以写在script标签内部并且将script标签放在网页的任何位置。
    demo:
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title></title>
    <script>
        // js code ...
    </script>
</head>
<body>
    <script>
        // js code ...
    </script>
</body>
    <script>
        // js code ... 
    </script>
</html>

在上面的代码中,我们把包含有js代码的script标签放在了head标签、body标签、和body标签之后的位置。从语法的层面来说,上面的这几种写法都是正确的。但是在本教程中较为推荐的写法是将scirpt标签放在body标签的闭合标签的后面。

推荐的原因,是因为js代码经常需要操作html标签,而放在后面可以等到html标签加载完毕之后再来执行js代码。避免因为html标签未加载而导致的报错。

  • 而另外一种写法是将js代码完全的写在一个后缀名为.js的文件中。在需要的html文件中通过script标签引入。
    demo:
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title></title>
</head>
<body>

</body>
  // 通过src属性与script标签配合引入外部的js文件
<script src="01.js"></script>
</html>

js语句

js当中的语句表示js向宿主环境发送的命令。

例如下面的语句是向页面中输出计算10 + 2的结果。

document.write(10+2);//write(rua yi te)

在每一条语句的后面都带有一个分号,表示语句结束。

当然js允许我们将分号省略掉,如果不写分号,浏览器会自动添加,但会消耗一些系统资源,也会增加代码的维护成本,而且有时候,浏览器会加错分号,所以在开发中分号必须写。

需要注意的是,如果分号前面的语句为空,则没有意义。

 ; ; ;

类似上面的语句代码是没有意义的。

注释

注释是任何编程语言当中必不可少的一环。通过注释,可以让我们开发过的代码具有更好的可读性,也能变相的提升后期代码的维护和升级速度。

一般情况下,注释的内容可以包含很多,例如参数信息代码功能使用方式等等。

js中,注释分为两种,一种是单行注释,一种是多行注释

单行注释通过//表示,一般写在语句的后面或者语句的上方。

// 这里是代码注释

多行注释通过/**/的形式来创建,一般写在代码的上方。

/*
这里是多行注释...
*/

无论你是一个js新人,还是一个成熟的老程序员,合理的应用注释都是一个非常好的习惯。

字面量

都是一些不可改变的值,比如1、2、3、4、5...
字面量都是可以直接使用的

直接量

js中,直接使用的量,我们称之为叫做直接量
例如,在代码中,我们要使用10,那么这个10就是一个直接量

表达式

一般情况下,表达式需要得到一个结果。
例如10+2就是一个表达式,我们在创建这个表达式的时候,就希望得到10+2的结果。

document.write(10+2);// 通过document.write()方法将10+2这个表达式的结果输出到网页当中

输出方式

我们在编写js代码的时候,经常需要得到计算的值,用以判断得到的值与我们预期的值是否相符,所以我们需要了解下面的基本的输出方式。

// console.log() 将内容输出到浏览器的控制台,可以输出函数、对象各种复杂的信息
console.log(10+2);
// document.write() 将内容输出到网页当中,只能输出简单的文本效果
document.write(10+2);

通常情况下我们通过console.log()这种形式输出代码我们称之为代码打印

弹窗

js中,如果你的代码运行环境是在浏览器当中,那么就可以使用浏览器给我们提供的弹窗。

alert(10+2);
confirm(10+2);
prompt(10+2);

上述的三个弹窗只能够在运行环境为浏览器的情况下使用。

变量

我们上面说到了表达式,通过表达式能够得到计算的结果,但是如果我们计算的逻辑较为复杂,那么如果单纯的依赖表达式将会变得不那么方便。
这个时候,就可以使用变量

什么是变量呢?
我们可以把变量理解为是一个代名词或者说叫做临时的容器

我们可以把一个具体的值存入到变量中。那么此时这个变量就代表着我们这个具体的值。我们如果想要重新的使用这个值,不再需要重新的计算或者其他操作,直接使用变量就可以得到之前存储的这个值。

而想要创建一个变量(也可以说是声明一个变量),需要通过var关键字(es6中通过let声明)。

var val = 10 + 2;

在上面的代码中,我们创建了一个变量val,并且使用这个变量val存储了表达式10+2的计算结果。那么如果想要第二次使用10+2的结果,可以直接使用变量val即可。

console.log(val);// 通过console.log() 输出val,此时就可以在控制台看到10+2的结果

在我们使用变量的时候,还有一点需要理解,变量之所以叫变量,是因为变量随时可以根据我们的需要更改其中存储的值。

var a = 10;
a = 20; // 当我们重新的向变量中存储数据的时候,不需要再加var
console.log(a); // 此时再打印a结果就为20

需要注意的是,上面我们将变量a内存储的数据由10变成了20,在重新存储的过程中,我们并没有使用var,那么上面的代码就相当于我们将20的值存储到之前创建的变量a中。

而如果在重新的存储的过程中使用了var,如同下面的案例:

var a = 10; // 第一次声明变量a
var a = 20; // 再一次通过var声明变量a,并且使用了var
consoloe.log(a);

需要注意的是,虽然最后的结果和上面的打印结果相同,但是变量a本质上已经发生了变化。

如果在重新存储数据的过程中,没有在变量名前面加var,那么相当于是更改变量a中存储的值,而如果前面加了var,则相当于重新的创建了一个变量a,并且存储了20这个数据

如果采用下面的这种写法,那么重新创建的变量将会无效:

var x = 1;
var x;
x // 1

变量提升:

JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)

console.log(a);
var a = 1;

上面代码首先使用console.log方法,在控制台(console)显示变量a的值。这时变量a还没有声明和赋值,所以这是一种错误的做法,但是实际上不会报错。因为存在变量提升,真正运行的是下面的代码。

var a;
console.log(a);
a = 1;

最后的结果是显示undefined,表示变量a已声明,但还未赋值。

标识符

标识符(identifier)指的是用来识别各种值的合法名称。最常见的标识符就是变量名,以及后面要提到的函数名。JavaScript 语言的标识符对大小写敏感,所以aA是两个不同的标识符。

标识符有一套命名规则,不符合规则的就是非法标识符。JavaScript 引擎遇到非法标识符,就会报错。

简单说,标识符命名规则如下。

  • 语义化,前缀就能表示出这个变量的类型
  • 第一个字符,可以是任意Unicode字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
  • 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9
  • 关键字和保留字不能做变量名

下面这些都是合法的标识符。

arg0
_tmp
$elem
π

下面则是一些不合法的标识符:

1a  // 第一个字符不能是数字
23  // 同上
***  // 标识符不能包含星号
a+b  // 标识符不能包含加号
-d  // 标识符不能包含减号或连词线

需要注意的是,在js当中,中文也是合法的标识符,但是并不推荐使用。

JavaScript 有一些保留字,不能用作标识符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。

相关文章

网友评论

      本文标题:JavaScript入门

      本文链接:https://www.haomeiwen.com/subject/emtclctx.html