JavaScript语言基础知识

文章目录


前言

JavaScript是Web页面中一种比较流行的脚本语言,它通过客户端浏览器解释执行,可以应用在JSP、PHP、ASP等网站中。随着Ajax进入Web开发的主流市场,熟练掌握并应用JavaScript对网站开发人员来说非常重要。该文介绍一下JavaScript的基础知识,便于回顾。


一、JavaScript语言是什么?

JavaScript是一种基于对象和事件驱动并具有安全性能的解释型脚本语言,在Web应用中得到了广泛应用。该语言不需要编译,直接嵌入在HTTP页面中,将静态页面转变成支持用户交互并响应应用实践的动态页面。

在JavaWeb程序中,经常应用JavaScript进行数据验证、控制浏览器以及生成时钟、日历和时间戳文档等。

JavaScript语言有以下几种特点:

第一,解释性:作为脚本语言,通过嵌入程序段的方法实现编程,对于程序进行解释性编程。

第二,基于对象:该语言可以使用自己创建的对象,许多功能来自于脚本环境中对象的方法与脚本的相互作用。

第三,事件驱动:该语言可以以事件驱动的方式直接对客户端的输入做出响应,无需经过服务器端程序。

第四,安全性:该语言具有安全性,不允许访问本地硬盘,不能将数据写入服务器,并且不允许对网络文档进行修改和删除。

第五,跨平台性:该语言依赖于浏览器本身,和操作系统无关,只要浏览器支持JavaScript,那它的代码就能正常运行。

二、基础知识

1.语法

(1)JavaScript语言区分大小写

JavaScript区分大小写,这点和java是一致的。

javascript 复制代码
<script>
    var username;
    var userName;
</script>

usename 和 useName 这两个是不同的变量。

(2)每行结尾的分号可有可无

虽然是可以不写分号的,但最好养成写分号结尾的习惯。

(3)变量是弱类型的

JavaScript的变量是弱类型的。意思是,在定义变量时,只使用 var 运算符,就可以将变量初始化为任意类型的值。

javascript 复制代码
<script>
    var username = 1024;
    username = "字符串";
</script>

和java不同,使用 var 关键字定义的变量,数据类型根据赋值的数据来决定,可以是数字,然后重新赋值成字符串也许。

(4)使用大括号标记代码块

JavaScript使用一对大括号来标记代码块,被封装在大括号内的语句将按照逐行往下的顺序执行代码。

javascript 复制代码
<script>
    function greet() {
        alert("Hello, World!");
    }
</script>

如上,我们写的函数,代码都在大括号中,和java一样。

(5)注释

JavaScript提供了两种注释,即单行注释和多行注释。

javascript 复制代码
<script>
    //这是一条单行注释

    /* 你
       看
       我
       像不像
       多行注释啊
    */
</script>

单行注释使用双斜线"//"开头;多行注释使用" /* "开头," */ "结尾,中间的内容为注释。

2.关键字

和Java语言一样,JavaScript中也有许多关键字,列出下表,以供查看。

|----------|----------|------------|------------|--------------|--------|
| abstract | continue | finally | instanceof | private | this |
| boolean | default | float | int | public | throw |
| break | do | for | interface | return | typeof |
| byte | double | function | long | short | true |
| case | else | goto | native | static | var |
| catch | extends | implements | new | super | void |
| char | false | import | null | switch | while |
| class | final | in | package | synchronized | with |
[JavaScript 中的关键字]

同理,JavaScript的关键字不能用作变量名、函数名以及循环标签。

3.数据类型

1.数值型

(1)整型

JavaScript 的整型数据可以为正整数、负整数和0,并且可以通过十进制、八进制或十六进制来表示。

javascript 复制代码
<script>
    var value1 = 1024;
    var value2 = -0404;
    var value3 = 0x999B;
</script>

以 0 开头的数是八进制数,以 0x 开头的数为十六进制数。

(2) 浮点型

浮点数有小数部分,只能通过十进制,科学记数法、或标准方法来表示。

javascript 复制代码
<script>
    var value1 = 3.1415926;
    var value2 = 3.14*Math.pow(10, -3);
    var value3 = Math.PI;
</script>

2.字符型

字符型数据是使用单引号或双引号括起来的一个或多个字符。该语言中,单引号字符和双引号字符本质上没有任何区别。

(1)单引号

javascript 复制代码
<script>
    var value1 = 'a';
    var value2 = 'abcdefg';
</script>

JavaScript 没有 char 数据类型,要表示单个字符,必须使用长度为 1 的字符串。

(2)双引号

javascript 复制代码
<script>
    var value1 = "a";
    var value2 = "abcdefg";
</script>

3.布尔型

布尔型数据也只有两个值,即 true 或 false ,主要来描述一种状态。在JavaScript中,可以使用整数 0 表示 false,使用非 0 的整数表示 true 。

javascript 复制代码
<script>
    var value1 = true;
    var value2 = false;
</script>

4.转义字符

以反斜杠开头的不可显示的特殊字符通常称为转义字符。通过转义字符可以在字符串中添加不可显示的特殊字符,或者防止引号匹配混乱的问题。

|---------|----------------------------|
| 转义字符 | 描述 |
| \b | 退格 |
| \f | 换页 |
| \r | 回车键 |
| \" | 双引号 |
| \xnn | 十六进制代码 nn 表示的字符 |
| \0nnn | 八进制代码 nnn 表示的字符 |
| \n | 换行 |
| \t | Tab符 |
| \' | 单引号 |
| \\ | 反斜杠 |
| \unnnn | 十六进制代码 nnnn 表示的 Unicode 字符 |
[JavaScript常用的转义字符]

**实操:**使用转义字符 \r 来做个网页欢迎提醒。

javascript 复制代码
<script>
    alert("欢迎点开该网址!\r 您是我们今日访问的第 888 位用户!");
</script>

运行结果:

在"docunmet.writeln();"语句中使用转义字符时,只有将其放在格式化文本块中才会起到作用,所有输出的带转义字符的内容必须在<pre>和</pre>标记内。

5.空值

JavaScript 中有一个空值( null ),用于定义空的或不存在的引用。当调用一个没有定义数值的变量,则会返回一个 null 值。

javascript 复制代码
<script>
    var value;
    var value2 = null;
</script>

空值不等于空的字符串( " " )或 0。

6.未定义值

当使用了一个并未声明变量,或者使用了一个已经声明但没有赋值的变量时,将返回未定义值( undefined )。

(1)声明变量未赋值

javascript 复制代码
<script>
    let age; // 声明了一个变量 age
    console.log(age); // 输出: undefined
</script>

(2) 使用了一个没有声明过的变量

javascript 复制代码
<script>
    console.log(name); 
    // 抛出 ReferenceError: name is not defined
</script>

JavaScript中还有一种特殊类型的数字常量 NaN,即 "非数字"。当程序中由于BUG发生计算错误,产生了一个没有意义的数字,此时JavaScript返回的数字值就是 NaN。

4.变量定义及其使用

变量是指程序中已经命名的存储单元,其主要作用是为数据操作提供存放信息的容器。使用变量前,必须明确变量的命名规则、变量的声明方法以及变量的作用域。

1.变量的命名规则

(1)变量名可以由字母、数字或下划线组成,但必须是字母或下划线开头。

(2)变量名中不能由空格、加号、减号、或逗号等乱七八糟的符号。

(3)不能使用 JavaScript 中的关键字

(4)JavaScript 的变量名是严格区分大小写的。

2.变量的声明

在 JavaScript 中,可以使用关键字 var 声明变量,语法格式如下:

javascript 复制代码
var value;

在声明变量时需要遵守以下规则:

(1)可以使用一个 var 关键字来同时声明多个变量。

javascript 复制代码
var id,name,age,gender;

(2)可以在声明变量的同时对其赋值。

javascript 复制代码
var id = 101, name = "小王", age = 24, gender = '男';

(3)声明了变量,未赋值,默认值为 undefined。

javascript 复制代码
var value; //value值为undefined

(5)函数内部创建的变量是局部的。

(6)声明变量时,变量的类型会根据变量的值来决定。

3.变量的作用域

变量的作用域是指变量在程序中的有效范围。根据变量的作用域可以将变量分为全局变量和局部变量两种。全局变量定义在所有函数之外,作用于整个脚本代码的变量;局部变量是定义在函数体内,只作用于函数体内的变量。

**实操:**点开网站时,显示登录的用户名,以及登录时间。

javascript 复制代码
<script>
    var username = "MOSS";
    function  log(){
        var date = new Date;
        alert("登录用户名:"+username+"\r 登录时间:"+date);
    }
    new log();
</script>

这串代码中 username 是全局变量;date 是局部变量。

运行结果:

5.运算符的使用

运算符是用于完成计算或者比较数据等一系列操作的符号。常用的 JavaScript 运算符按照类型分有 6 种。

(1)赋值运算符

JavaScript 中的赋值运算符可分为简单运算符和复合运算符。简单运算符是将赋值运算符( = )右边表达式的值保存到左边的变量中;而复合运算符混合了其他加减乘除之类的操作再赋值给左侧变量。

|-----|------------------------------|----------------------|
| 运算符 | 功能描述 | 示例 |
| = | 将右边表达式的值赋给左边的变量 | username = "MOSS" |
| += | 左边变量的值 + 右边变量的值的结果赋值给左边变量对象 | a+=b //相当于 a = a+b |
| -= | 左边变量的值 - 右边变量的值的结果赋值给左边变量对象 | a-=b //相当于 a = a-b |
| *= | 左边变量的值 * 右边变量的值的结果赋值给左边变量对象 | a*=b //相当于 a = a*b |
| /= | 左边变量的值 / 右边变量的值的结果赋值给左边变量对象 | a/=b //相当于 a = a/b |
| %= | 左边变量的值 % 右边变量的值的结果赋值给左边变量对象 | a%=b //相当于 a = a%b |
| &= | 左边变量的值 & 右边变量的值的结果赋值给左边变量对象 | a&=b //相当于 a = a&b |
| |= | 左边变量的值 | 右边变量的值的结果赋值给左边变量对象 | a|=b //相当于 a = a|b |
| ^= | 左边变量的值 ^ 右边变量的值的结果赋值给左边变量对象 | a^=b //相当于 a = a^b |
[JavaScript 中的赋值运算符]

(2)算术运算符

算术运算符用于在程序中进行加减乘除等运算。

|-----|-------|
| 运算符 | 功能描述 |
| + | 加运算符 |
| - | 减运算符 |
| * | 乘运算符 |
| / | 除运算符 |
| % | 取余运算符 |
| ++ | 自增运算符 |
| -- | 自减运算符 |
[JavaScript 中的算术运算符]

i = 1; j = i++; // j=1,i = 2

i = 1; j = ++i; // j=2,i = 2 自减同理

执行除法运算时,若 0 为除数,返回结果为 Infinity。

**实操:**使用算术运算符,在页面中汇总网站目前的浏览量。

javascript 复制代码
<script>
    var Monday_log = 4123;
    var Tuesday_log = 3123;
    var Wednesday_log = 1233;
    var PV = Monday_log+Tuesday_log+Wednesday_log;
    alert("本周网站目前浏览量为:"+PV);
</script>

运行结果:

(3)比较运算符

比较运算符的基本操作:先对操作数进行比较,这个操作数可以是数字也可以是字符串,饭后返回一个布尔值 true 或 false。

|-----|------------------------|-----------------------|
| 运算符 | 功能描述 | 示例 |
| < | 小于 | 520 < 1314 返回 true |
| > | 大于 | 250 > 521 返回 false |
| <= | 小于等于 | |
| >= | 大于等于 | |
| == | 等于,只根据表面值进行判断,不涉及数据类型 | "123" == 123 返回true |
| === | 绝对等于。根据表面值和数据类型同时进行判断 | "123" === 123 返回false |
| != | 不等于。只根据表面值进行判断,不涉及数据类型 | "123" != 123 返回false |
| !== | 绝对不等于。根据表面值和数据类型同时进行判断 | "123" !== 123 返回true |
[JavaScript 中的比较运算符]

(4)逻辑运算符

逻辑运算符通常于比较运算符一起使用,用于表达复杂的比较运算,常用于 if、while 和 for 语句中,其返回值为一个布尔值。

|------|-----------------------------------|------------------------|
| 运算符 | 功能描述 | 示例 |
| ! | 逻辑非。否定条件,即 !假=真 | !true //值为false |
| && | 逻辑与。只有当两个操作数的值都为 true 时,值才为 true。 | true&&true //值为true |
| || | 逻辑或。只要两个操作数中之一为 true,值才为 true | true||false //值为true |
[JavaScript 中的逻辑运算符]

(5)条件运算符

条件运算符是 JavaScript 支持的一种特殊的三目运算符,语法格式如下:

操作数?结果1:结果2

如果操作数的值为true,则整个表达式的结果返回"结果1",是false,则返回"结果2"。

**实操:**利用该条件表达式,让任意对比的两个数,返回值都是最小的。

javascript 复制代码
 <script>
    var a = 20;
    var b = 27;
    var result = a<b?a:b;
    alert("显示反馈结果"+result);
</script>

运行结果:

(6)字符串运算符

字符串运算符是用于两个字符型数据之间的运算符。

+运算符用于连接两个字符串。+=运算符则是连接两个字符串,并将结果赋值给第一个字符串

实操:

javascript 复制代码
<script>
    var a = "Hellow"+" world!";
    var value = "\r你好,世界!";
    a+=value;
    alert(a);
</script>

运行结果:


总结

以上就是JavaScript的基础内容了。本文简单罗列了JavaScript的基础要点,供回顾时使用,有补充或者指正的地方,欢迎在评论区中留言。

相关推荐
崔庆才丨静觅11 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606111 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了11 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅11 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅12 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅12 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment12 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅13 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊13 小时前
jwt介绍
前端
爱敲代码的小鱼13 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax