JavaScript语言基础知识

news2024/9/23 21:13:38

文章目录

  • 前言
  • 一、JavaScript语言是什么?
  • 二、基础知识
    • 1.语法
    • 2.关键字
    • 3.数据类型
    • 4.变量定义及其使用
    • 5.运算符的使用
  • 总结

前言

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


一、JavaScript语言是什么?

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

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

        JavaScript语言有以下几种特点:

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

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

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

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

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

二、基础知识

1.语法

        (1)JavaScript语言区分大小写

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

<script>
    var username;
    var userName;
</script>

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

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

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

        (3)变量是弱类型的

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

<script>
    var username = 1024;
    username = "字符串";
</script>

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

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

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

<script>
    function greet() {
        alert("Hello, World!");
    }
</script>

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

        (5)注释

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

<script>
    //这是一条单行注释

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

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

2.关键字

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

JavaScript 中的关键字
abstractcontinuefinallyinstanceofprivatethis
booleandefaultfloatintpublicthrow
breakdoforinterfacereturntypeof
bytedoublefunctionlongshorttrue
caseelsegotonativestaticvar
catchextendsimplementsnewsupervoid
charfalseimportnullswitchwhile
classfinalinpackagesynchronizedwith

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

3.数据类型

        1.数值型

        (1)整型

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

<script>
    var value1 = 1024;
    var value2 = -0404;
    var value3 = 0x999B;
</script>

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

        (2) 浮点型

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

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

        2.字符型

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

        (1)单引号     

<script>
    var value1 = 'a';
    var value2 = 'abcdefg';
</script>

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

        (2)双引号

<script>
    var value1 = "a";
    var value2 = "abcdefg";
</script>

        3.布尔型

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

<script>
    var value1 = true;
    var value2 = false;
</script>

        4.转义字符

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

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

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

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

        运行结果:

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

        5.空值

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

<script>
    var value;
    var value2 = null;
</script>

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

        6.未定义值

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

        (1)声明变量未赋值

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

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

<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 声明变量,语法格式如下:

var value;

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

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

var id,name,age,gender;

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

var id = 101, name = "小王", age = 24, gender = '男';

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

var value; //value值为undefined

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

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

        3.变量的作用域

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

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

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

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

        运行结果:

5.运算符的使用

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

        (1)赋值运算符

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

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

        (2)算术运算符

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

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

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

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

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

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

<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。

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

        (4)逻辑运算符

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

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

        (5)条件运算符

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

操作数?结果1:结果2

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

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

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

        运行结果:

        (6)字符串运算符

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

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

        实操:

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

        运行结果:


总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2126448.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编码与实现

1. 程序设计语言 1.1 程序设计语言的概述 程序设计语言是用于书写计算机程序的语言&#xff0c;是一种实现性软件语言。最早的机器语言&#xff0c;到汇编语言&#xff0c;到现在的高级语言。语言的发展越来越规范、简单&#xff0c;代码的复用性越来越高。程序员逐渐从复杂的…

curl和ping

curl获取页面内容&#xff0c;ping测试连通 curl和ping是两个在网络环境中常用的命令行工具&#xff0c;但它们的目的和应用场景有很大的不同。 curl 用途&#xff1a;curl是一个命令行工具&#xff0c;用于传输数据&#xff0c;支持多种协议&#xff0c;包括HTTP、HTTPS、FT…

KaiwuDB 受邀亮相 2024 数博会

8月28-30日&#xff0c;由国家数据局主办&#xff0c;贵州省人民政府承办的 2024 中国国际大数据产业博览会&#xff08;简称“数博会”&#xff09;在贵阳启幕。KaiwuDB 受邀携一众产品亮相大会&#xff0c;重点展示了分布式多模数据库 KaiwuDB 2.0 及其在物联网海量异构数据管…

比较stl库的ostringstream与Qt的QString::arg(),QString::number()

需求&#xff1a; 显示一个float或者double类型的数&#xff0c;要求小数点后的数字位数为定值。 考虑STL库的ostringstream或者Qt的QString::arg(), number 对于stringstream,使用比较繁琐&#xff0c;要联合使用std::fixed和std::setprecision才能实现固定小数位数显示&am…

Java并发复习

Java基础 1. 为什么要使用并发编程&#xff1f; 一般我们工作的电脑都有多核&#xff0c;我们创建多个线程&#xff0c;然后操作系统可以将多个线程分配给不同的CPU去执行&#xff0c;每个CPU执行一个线程&#xff0c;这样就提高了CPU使用效率。 在网络购物中&#xff0c;我…

52. 两个链表的第一个公共节点

comments: true difficulty: 简单 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9852.%20%E4%B8%A4%E4%B8%AA%E9%93%BE%E8%A1%A8%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%85%AC%E5%85%B1%E8%8A%82%E7%82%B9/README.md 面试题 52. 两…

逆向基础一阶段检测-2

做题笔记。 前言&#xff1a;只能说&#xff0c;在目前我所打的CTF-reverse&#xff0c;这类题目&#xff0c;第一印象就是它啦。 考查&#xff1a;对混淆代码的识别、反反调试的手段。 下载 查壳。 32ida打开。 还是先用动调的方式去执行。 会发现 程序直接闪退。 切换到汇编窗…

【编译原理】词法分析(编译器、转移图、正则表达式)

#词法分析 目录 编译器的阶段前端 转移图标识符的转移图关键字表算法正则表达式自动生成什么是正则表达式语法糖有限状态自动机&#xff08;FA&#xff09;小结 编译器的阶段 源程序→前端→中间表示→后端→目标程序 前端 其中词法分析器的作用&#xff1a; 字符流到单词流…

【CanMV K230 AI视觉】 人体关键点检测

【CanMV K230 AI视觉】 人体关键点检测 人体关键点检测 动态测试效果可以去下面网站自己看。 B站视频链接&#xff1a;已做成合集 抖音链接&#xff1a;已做成合集 人体关键点检测 人体关键点检测是指标注出人体关节等关键信息&#xff0c;分析人体姿态、运动轨迹、动作角度等…

Vue常见面试题目

computed与watch区别 computed&#xff08;计算属性&#xff09;watch&#xff08;侦听器&#xff09;定义与用途计算属性&#xff08;computed&#xff09;用于声明式地描述一些依赖响应式属性的计算值。当依赖的响应式属性值发生变化时&#xff0c;计算属性会重新求值。侦听…

【深度学习】Pytorch基础

目录 梯度下降算法&#xff08;Gradient Descent&#xff09;代码实现 梯度下降算法&#xff08;Gradient Descent&#xff09; 梯度下降算法在机器学习中应用十分的广泛&#xff0c;不论是在线性回归还是Logistic回归中&#xff0c;它的主要目的是通过迭代找到目标函数的最小…

[网络]TCP/IP协议 之 网络层IP协议(3)

文章目录 网络层IP协议NAT机制 网络层 网络层主要做的事情: 1.路径规划(路由器选择) 2.地址管理 IP协议 1)4位版本 指定IP协议的版本, 4 > ipv4 , 6 > ipv6 2)4位首部长度 4位bit能表示0-15, 单位也是4字节, 所以IP报头最长60字节, 最短20字节 3)8位服务类型(TOS) ty…

【Qt】Qt界面美化 | 绘画

文章目录 绘画概述绘制API1. 图形(1). 线段(2). 矩形(3). 圆形(4). 绘制文本 2. 工具(1). 画笔(2). 画刷 3. 绘制图片QPainter图片操作 绘图设备(1). QPixmap(2). QImage(3). QPicture 结束语 绘画概述 虽然 Qt 已经内置了很多的控件&#xff0c;但还是有很多时候需要“自定义…

源于AI绘画的爆火,尝试做了一个工具网站

这两天做了一个 网页 Demo&#xff0c;实现了一些 AI 图像处理功能&#xff0c;前端用的是 React&#xff0c;后端用的是 Django 现在 &#xff0c;Demo 中已经实现的功能有两个&#xff1a; 1&#xff0c;人像分割&#xff1a;从图像中把人物分割出来&#xff0c;用一个透明…

Vue与React的Diff算法

虚拟DOM 定义 虚拟DOM是一种用于在前端开发中模拟真实DOM的技术。它是一种抽象的数据结构&#xff08;简单来说就是一个Javascript对象&#xff09;&#xff0c;用于描述HTML或XML文档的结构和内容。通过将页面的状态和结构保存在内存中&#xff0c;而不是直接操作真实的DOM&am…

C++·io流

本节主要是了解为主&#xff0c;需要具体使用时可以查看文档。 io流操作指的是对各种流的操作&#xff0c;我们经常使用的cin和cout是对标准流的操作&#xff0c;实际上它还可以对文件流操作。 官网资料&#xff1a;Input/Output - C Reference 流输入和流提取功能的实现中有着…

鸿蒙交互事件开发04——手势事件

1 概 述 手势事件是移动应用开发中最常见的事件之一&#xff0c;鸿蒙提供了一些方法来绑定手势事件。通过给各个组件绑定不同的手势事件&#xff0c;并设计事件的响应方式&#xff0c;当手势识别成功时&#xff0c;ArkUI框架将通过事件回调通知组件手势识别的结果。 …

记录一款人气领先的开源国产 ERP 系统

推荐一款人气领先的国产ERP系统&#xff0c;目前在Gitee上有12.3k star&#xff0c;在github上面也有1.2k 管伊佳ERP&#xff08;原名华夏ERP&#xff09;基于SpringBoot框架和SaaS模式&#xff0c;立志为中小企业提供开源好用的ERP软件&#xff0c;目前仅支持进销存财务生产功…

2025年第八届计算机图形和虚拟国际会议(ICCGV 2025)即将召开!

2025年第八届计算机图形和虚拟国际会议&#xff08;ICCGV 2025&#xff09;将于2025年2月21-23日在中国成都举行。随着信息技术的飞速发展&#xff0c;计算机图形学与虚拟现实技术正以前所未有的速度重塑着我们的认知世界与交互体验。从沉浸式游戏到精准医疗模拟&#xff0c;从…

气压测试实验(用IIC)

I2C: 如果没有I2c这类总线&#xff0c;连接方法可能会如下图&#xff1a; 单片机所有的通讯协议&#xff0c;无非是建立在引脚&#xff08;高低电平的变换高低电平持续的时间&#xff09;这二者的组合上&#xff0c;i2c 多了一个clock线&#xff0c;负责为数据传输打节拍。 (i2…