JavaScript 基础

JavaScript 基础

1.1JavaScript 概述

  • JavaScript (简称 JS)是一种具有函数有限原则的轻量级、解释型或即时编译型的编程语言。

1.2JavaScript 的组成及其基本结构

  • 使用 JavaScript之前,必须了解 JavaScript 由哪几部分组成,通常写在 HTML 结构的哪个地方,如何在网页中引入 JavaScript代码

1.2.1 JavaScript 的组成

  • 一个完整的 JavaScript 由三部分组成。

在这里插入图片描述

1.ECMAScript

  • ECMAScript 是一种由 Ecma 国际[前身为欧洲计算机制造商协会(European Computer Manufacturers Association)] 通过 ECMA-262 标准化的脚本程序设计语言。
  • 主要描述了 JavaScript 的语法、变量、数据类型、运算符、逻辑控制语句、关键字、对象等。

2. DOM

  • DOM (Document Object Model,文档对象模型)是 HTML 文档对象模型定义的一套标准方法,主要用来访问和操作 HTML 文档。
  • 例如:电商网站页面中弹出的提示框、鼠标移动放大图片等效果都要通过操作 DOM 来完成。

3.BOM

  • BOM (Browser Object Model,浏览器对象模型) 是用于描述对象与对象之间层次关系的模型,浏览器对象模型提供了独立于内容的、可以于浏览器窗口进行互动的对象结构。

  • DOM 及 BOM 的内容将会在后面章节详细介绍,本章着重介绍 ECMAScript 标准。

1.2.2 JavaScript

  • 在使用 JavaScript 时,可以用 结束标签为止。
  • 语法:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--2.内部样式-->
<script type="text/javascript">
document.write("Hello world");
</script>
</body>
</html>
  • type 属性用于制定文本使用的语言类别是 text/javascript。
  • 在浏览器运行的代码

在这里插入图片描述

  • 注意

    • document.write() 表示用来向页面输出可以包含 HTML 标签的内容。

    • 可以包含在文档中的任何地方,需要保证这些代码在被使用前已读取并记载到内容。

1.2.3 内部JavaScript 文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--2.内部样式-->
<script type="text/javascript">
document.write("Hello world");
</script>
</body>
</html>
  • 直接使用

1.2.4 外部JavaScript 文件

  • 外部 JavaScript 文件是将 JavaScript 代码写入一个外部文件中,并以"**.js"为扩展名保存;
  • 然后将该文件指定给
document.write("Hello world");
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--    3.外部样式js-->
    <script src="js/Demo01.js" type="text/javascript"/>
</head>
<body>
</body>
</html>

1.2.5 行内 JavaScript

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--1.行内js-->
<input type="button" value="登录" onclick="javascript:prompt('确定要登录嘛','输入密码')">
<input type="button" value="登录" onclick="javascript:alert('确定要登录嘛')">
<input type="button" value="登录" onclick="javascript:confirm('确定要登录嘛')">
</body>
</html>
  • 直接将 JavaScript 代码写入 HTML 标签中使用于简短的 JavaScript 代码,
  • 如鼠标单击按钮弹出一个对话框等,这样通常会在按钮标签中加入 JavaScript 的处理程序。

在这里插入图片描述

  • onclick 表示单击的时间处理程序,即当用户单击按钮时,就会执行"javascript:"后面的命令。alert()是一个函数,作用是向页面弹出一个对话框。

1.2.6小结

  • 内部 JavaScript 文件仅适用代码量较少的单个页面的情况。
  • 外部 JavaScript 文件适用于代码量多,并且可以重复应用于多个页面的情况。随着后续项目规格的增加,这种方式最为推荐。
  • 直接写在 HTML 标签中则适用于代码量极少的情况,但是这种方式增加了 HTML 代码,没有将结构与交互分离开,所以不推荐使用。

1.3 变量的声明和赋值

1.3.1 变量的声明

  • 在 JavaScript 中,使用变量前需要先声明变量,目前所学阶段所有的 JavaScript 变量都有关键则 var 声明。

  • 语法

var 变量名;
  • var 是声明变量所使用的关键字。在声明变量名时应注意,变量名可以由数字、字母、下划线及"$" 符号组成。
  • 但首字母不能是数字,并且也不可以使用关键字命名。
var name;
  • 可以使用一个关键字 var 同时声明多个变量,
  • 语法
var name,sex,age;
  • 注意
    • 在 JavaScript 中,变量名区分英文字母大小写,所有字母大小不同的变量名表示不同的变量。
    • 变量可以不经过声明被直接使用,但是这种方法很容易出错,且很难拍错,因此不推荐使用。
    • 变量命名建议:应见名只意,即具有语义化;还可以使用驼峰式命名。

1.3.2 变量的赋值

  • 在声明变量的同时也可以使用等号(=) 对变量进行初始化赋值,
  • 语法
var 变量名=变量值;
  • 使用等号 (=) 赋值后,即将变量值赋值给声明的变量名。
var name;
name="张三";

1.4 JavaScript的数据类型

  • JavaScript 的弱类型脚本语言,声明变量时无须指定变量的数据类型,因为 JavaScript 变量的数据类型是解释时动态决定的。
  • 在 JavaScript 中,提供了 3 中基本数据类型和 2 中特殊数据类型。

1.4.1 基本数据类型

1.数值类型

  • 与强类型语言 Java 和 C# 不同,JavaScript 的数值类型不仅包括所有的整形变量,还不包括所有的浮点型变量。
var num=15;
var num=15.8;
  • JavaScript 支持八进制和十六进制。八进制以 0 开头,其后的数字可以是任何八进制数组(0~7);十六进制以 0x 或 0X 开头,其后的数字时任意十六进制数字和字母 (09和AF)。
var num1=065;  //065 等于十进制的53
var num2=0X3f;  //0X3f 等于十进制的63

当数值类型超出了其表述返回时,将出现两个特殊值:Infinity (正无穷大) 和 -Infinity(负无穷大)。

//定义 x 为最大的数值
var x=1.345324684685737474636;
//再次增加x的值
x=x+le292;
//使用警告框输出x的值
alert(x);//结果为 Infinity (正无穷大)
  • 在浏览器中运行上述代码会发现结果为 Infinity,标识无穷大。

  • 在 JavaScript 中还有一个特殊值——NaN (Not a Number),表示非数字,它是数值类型。

typeof(NaN); //返回值为 number
  • typeof() 函数判断某个值或变量的数据类型,所以当使用 typeof 判断 NaN 时,返回的结果时 number,即数值类型。

2.字符串类型

  • JavaScript 的字符串必须用引号括起来,此处的引号既可以是单引号,也可以是双引号。
var str1="123abc";
var str2='123abc';
  • JavaScript 以 string 类标识字符串,string 类包含了一系列方法,具体情况如下。
    • charAt() :返回指定位置的字符。
    • toUpperCase():把字符串转换成大写。
    • toLowerCase():把字符串转换成小写。
    • indexOf():返回某个指定的字符串在字符串中首次出现的位置。
    • subString():用于提取字符串中介于两个指定下表之间的字符。
    • split():用于把一个字符串分割成字符串数组。
    • replace():用于在字符串中用一些字符替换另一些字符。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
    var str="123abc456DEF";
    document.write("下标为1的字符是:"+str.charAt(1)+'<br/>');
    document.write("把字符串转换成大写:"+str.toUpperCase()+'<br/>');
    document.write("把字符串转换成小写:"+str.toLowerCase()+'<br/>');
    document.write("查找abc在str中首次出现的位置:"+str.indexOf("abc")+'<br/>');
    document.write("查找xyz在str中首次出现的位置:"+str.indexOf("xyz")+'<br/>');
    document.write("返回索引6和9之间的字符串:"+str.substring(6,9)+'<br/>');
    document.write("把字符串str分割为字符串数组"+str.split("")+'<br/>');
    document.write("把DEF替换成789:"+str.replace("DEF","789"));
</script>
</body>
</html>

在这里插入图片描述

  • “+” 代表拼接符,可以将字符串拼接起来。

3.布尔类型

  • 布尔类型的值只有两个: true 和 false。布尔类型的值通常是逻辑运算的结果,用于标志对象的某种状态。

1.4.2 特殊数据类型

  • 特殊数据类型包括空类型(null) 和未定义类型(undefined)。
  • null 表示变量的值为空,可以用来检测某个变量是否被赋值。
  • undefined 类型的值只有一个 undefined,该值用于标识某个变量不存在,或者没有为其分配值用于表示对象的属性不存在。
  • 实际上,undefined 是null 派生来的,所以JavaScript 把它们定义为相等的。
alert(null==undefined);//返回值为true
  • 尽管两个值相等,但它们的含义不同。
    • undefined 标识没有为变量设置值火属性不存在;
    • null 标识变量是有值得,只是其值为 null;

1.4.3 判断数据类型

  • ECMAScript 提供了 typeof 运算符来判断某个值或变量的数据类型。
typeof(值或变量);
  • 返回值有如下几种:
    • number:如果变量是数值类型,则返回number。
    • string:如果变量是字符串类型,则返回string。
    • bolean:如果变量是布尔类型,则返回boolean。
    • object:如果变量是空类型,或者是一种引用类型,如对象、函数、数组,则返回object。
    • undefined:如果变量是未定义类型,则返回undefined。

1.5 运算符

  • 于Java中的运算符一样,在JavaScript 中,运算符可分为算术运算符、比较运算符、逻辑运算符和赋值运算符。

1.5.1 算术运算符

符号描述
+加法
-减法
*乘法
/除法
%余数
++递加
递减

1.5.2 比较运算符

符号描述
>大于
<小于
>=大于等于
<=小于等于
==等于
!=不相等
===等值等型
!==不等值或不等型

1.5.3 逻辑运算符

符号描述
&&逻辑与
||逻辑或
!逻辑非

1.5.4 赋值运算符

符号描述
=赋值
+=自增
-=自减
  • 特别注意的是,“==” 用于一般比较,在比较时会进行数据类型隐式转换;
  • “===” 用于严格比较,即只要数据类型不匹配就返回 false。

1.6 逻辑控制语句

  • 在 JavaScript 中,逻辑控制语句用于控制程序的执行顺序,其可以分为条件语句和循环语句。

1.6.1 if 语句

  • 在 if 语句中,可能有单分支语句,也可能有双分支语句,还可能有多分支语句。

1.单分支语句

  • 由一个 if 语句,如果条件成立,则进入代码块开始执行语句。
  • 语法
if(条件){
    //条件为真时执行的代码
}
  • 实例:当年龄大于等于18随时,弹出提示信息"你已经是成年人了"
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
  var age=20;
  if(age>=18)
  {
    alert("你已经是成年人了");
  }
</script>
</body>
</html>

在这里插入图片描述

2.双分支语句

  • 由两个分支线组成,如果 if 条件不成立,那么就会跳入else语句中。
  • 语法
if(条件)
    {
       //条件为真要执行的代码 
    }else
        {
            //条件为假时要执行的代码
        }
  • 实例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
  var age=16;
  if(age>18)
  {
    alert("你已经是成年人了");
  }else{
      alert("你还是未成年人");
  }
</script>
</body>
</html>
  • 由于声明的变量 age 是 16 ,条件不成立。
    在这里插入图片描述

3.多分支语句

  • 由多个 if…else 语句组合在一起。
  • 语法
if(条件){
    //执行语句
}else if(条件){
    //执行语句
}else{
    //执行语句
}
  • 示例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
  var age=18;
  if(age>18)
  {
    alert("你已经是成年人了");
  }else if(age==18){
      alert("恭喜您成为成年人");
  }else
  {
      alert("你还是未成年人");
  }
</script>
</body>
</html>
  • 由于生命的 age 变量等于 18,所以满足第二个条件,因此页面会弹出消息"恭喜您成为成年人"。

在这里插入图片描述

1.6.2 switch 语句

  • switch 语句比多分支语句结构更清晰
  • 语法
switch(条件){
    case 1:
        //执行语句
        break;
    case 2:
        //执行语句
        break;
    case 3:
        //执行语句
        break;
    default:
        //执行语句
        break;
}
  • break 关键字用于跳出某个case 语句。如果不书写 break 语句,则进入 case 语句以后会继续进入后面的 case 语句;
  • default 关键字用于书写默认的条件。
  • 如果前面 case 语句都不满足,就进入 default 语句。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
  var age=18;
  switch(age){
      case 20:
          alert("你已经是成年人了");
          break;
      case 18:
          alert("恭喜您成为成年人");
          break;
      default:
          alert("你还是未成年人");
          break;
  }
</script>
</body>
</html>

在这里插入图片描述

1.6.3 小结

  • JavaScript 中的 switch 语句和 if 语句都是用于条件判断的,但是当用于等职的多分支比较时,使用switch 语句可恶意使程序的结构更加清晰。

1.7 循环语句

1.7.1 for 循环

  • 语法
for(表达式 1; 表达式2; 表达式3){
    //循环体
}
  • 执行的顺序为:
    • 首先执行表达式 1 初始化变量;
    • 然后进行表达式 2 循环条件的判断;
    • 如果表达式 2 成立;
    • 那么执行循环体。
    • 循环体执行结束后,
    • 表达式 3 增加/减少初始化变量的值;
    • 然后再判断表达式 2 是否成立;
    • 如果成立就执行循环体,否则循环体结束。

1.7.2 while 循环

  • 语法
while(条件){
    //循环体
}
  • 其特点是先判断后执行,当条件为真时,就执行循环体;当条件为假时,就退出循环。

1.7.3 do-while 循环

  • 语法
do{
    //循环体
}while(条件);
  • 其特点时限制性后判断,该语句表示反复执行循环体,知道条件为假时才退出循环。

1.7.4 for-in 循环

  • for-in 循环常用对数组或对象的属性进行循环操作。
  • 语法
for(变量 in 对象|数组){
    //循环体
}

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
  var fruit=["apple","orange","banana","peach"];
  for (var i in fruit) {
    document.write(fruit[i]+'<br/>');
  }
</script>
</body>
</html>
  • 使用 for in 变量 i 接收到的值是对于数组的下标

在这里插入图片描述

1.8 注释

  • 注释用于解释 JavaScript 代码,增强可读性。

单行注释以 “//” 开头

//定义age变量为20
var age=20;

多行注释以 /* 开头,以 */ 结尾,

/*
定义age变量为20
*/
var age=20;

1.9 关键字和保留字

  • ECMA-262 描述了一组具有特定用途的关键字,这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。
  • 按照规则,关键字也是语言保留的,不能用作标识符。

1.9.1 关键字

关键字关键字关键字关键字关键字
breakdeleteifthiswhile
casedointhrowwith
catchelseinstanceoftry——
continuefinallynewtypeof——
debuggerforreturnvar——
defaultfunctionswitchvoid——

1.9.2 保留字

保留字保留字保留字保留字保留字
abstractdebuggergotopackagesynchronized
booleandoubleimplementsprivatethrows
byteenumimportprotectedteansient
charexportintpublic——
classextendsinterfaceshort——
constfinallongstatic——
volatilefloatnativesuper——

1.10 系统对话框

  • 浏览器可以通过 alert()、confirm()、prompt() 方法调用系统对话框想用户显示消息。

1.10.1 alert()

  • alert() 方法用于向用户显示一个警告对话框,其中包含指定的文本和一个确定按钮。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
  alert("警告")
</script>
</body>
</html>

在这里插入图片描述

  • 使用时应注意:
    • 在点击对话框的"确定"按钮之前,不能进行任何其他操作。
    • 警告对话框通常可以用于调试程序。
    • alert() 输出内容,可以是字符串或变量,与 document.write() 相似。

1.10.2 confirm()

  • confirm() 方法用于向用户显示一个消息对话框,该对话框可供用户进行选择,如"你好吗?"等。

  • 其包含一个"确定"按钮和一个"取消"按钮

  • 语法

confirm(str);
  • str 表示在消息对话框中要显示的文本,其返回值时不二类型,当点击确定:返回 true;点击取消:返回 false

  • 示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
  var msg=confirm("你喜欢JavaScript 吗?");
  if(msg==true)
  {
      document.write("很好,加油")
  }else if(msg==false)
  {
      document.write("不喜欢也必须要学哦!JavaScript 很重要~~~")
  }
</script>
</body>
</html>

弹出消息对话框效果

在这里插入图片描述

单机"确定"按钮后的效果

在这里插入图片描述

单机"取消"按钮后的效果图

在这里插入图片描述

  • 可以发现,页面打开就会弹出消息对话框;
  • 当单机"确定"按钮时,页面会输出"很好,加油";
  • 当单机"取消"按钮时,页面会输出"不喜欢也必须要学哦!JavaScript 很重要~~~";

1.10.3 prompt()

  • prompt() 方法会弹出一个提示对话框,等待用户输入一些数据。
  • 语法
prompt("提示信息","输入框的默认信息");
  • 第一个参数显示在对话框上,通常是一些提示信息;
  • 第二个参数出现在用户输入的文本框中,且被选中,作为默认值使用。
  • 如果省略第二个参数,则在提示对话框的输入文本框中会出现"undefined"。
  • 在使用时,可以将第二个参数的值设置为空字符串
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
  prompt("请输入今天是几月几号","")
</script>
</body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值