是一种基于对象和事件驱动的、并具有安全性能的脚本语言
特点
向HTML页面中添加交互行为
脚本语言,语法和Java类似
解释性语言,边执行边解释
组成
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iWg3PSlD-1681960137364)(./assets/image-20230311180052520.png)]
JavaScript 的基本结构
<script type="text/javascript" >
// type 指定文本使用的语言类别
// JavaScript 语句;
</script >
可以包含在文档中的任何地方,只要保证这些代码在被使用前已读取并加载到内存
内部JavaScript文件
外部JavaScript文件
直接写在HTML标签中
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<script type="text/javascript">
document.write("Change The World!");
script>
<br>
<script src="../js/01_xz.js" type="text/javascript">script>
<br>
<input onclick="alert('Change The World!')" type="button" value="单击">
body>
html>
外部 js 文件:01_xz.js
document.write("Change The World!");
内部JavaScript文件
外部JavaScript文件
适用于代码量多,且可以重复应用于多个页面
随着后续项目规格增加,最为推荐
直接写在HTML标签中
适用于代码量极少的情况
增加了HTML代码,没有将结构与交互分离开,不推荐使用
声明变量
var 变量名1[,变量名2, …];
变量命名建议
需见名知意,即具有语义化
使用驼峰式命名
var name; //声明1个变量
var userName, age, sex; //声明3个变量
为变量赋值
var 变量名
变量名 = 值;
var naem;
name = "张三";
var 变量名 = 值;
var name = "张三";
变量名 = 值;
username = "李四";
变量可以不经声明而直接使用,但这种方法很容易出错,也很难查找排错,不推荐使用
基本数据类型
var iNum=23;
//整数
var iNum=23.0;
//浮点数
不仅包括所有的整型变量,还包括所有的浮点型变量
var num=15;
var num=15.8;
八进制:以0开头,其后的数字可以是任何八进制数字(0~7)
十六进制:以0x或0X开头,其后的数字是任意的十六进制数字和字母(09和AF)
var num1=065;
// 065等于十进制的53
var num2=0X3f;
// 0X3f等于十进制的63
// NaN(Not a Number):表示非数字
var string1="This is a string";
// 一组被引号(单引号或双引号)括起来的文本
属性
常用方法
方法 | 说明 |
---|---|
charAt(index) | 返回在指定位置的字符 |
indexOf(str,index) | 查找某个指定的字符串在字符串中首次出现的位置 |
substring(index1, index2) | 返回位于指定索引index1和index2之间的字符串,包括索引index1对应的字符,不包括索引index2对应的字符 |
split(str) | 将字符串分割为字符串数组 |
replace(regexp/substr, replacement) | 在字符串中用一些字符替换另一些字符 |
字符串对象.方法名();
var str = "this is JavaScript";
var strLength = str.length;
//长度是18
字符串的基本方法和属性
<script type="text/javascript">
var str = "123abc456DEF";
document.write("下标为1的字符是:"+str.charAt(1)+'
');
document.write("把字符串转换成大写:"+str.toUpperCase()+'
');
document.write("把字符串转换成小写:"+str.toLowerCase()+'
');
document.write("查找abc在str中首次出现的位置:"+str.indexOf("abc")+'
');
document.write("查找xyz在str中首次出现的位置:"+str.indexOf("xyz")+'
');
document.write("返回索引6和9之间的字符串:"+str.substring(6,9)+'
');
document.write("把字符串str分割为字符串数组:"+str.split("")+'
');
document.write("把DEF替换成789:"+str.replace("DEF","789"));
</script>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KeqdgjdD-1681960137367)(./assets/image-20230311182306347.png)]
+
表示拼接符,可以将字符串拼接起来
var bool =true;
// true 和 false
// 表示一个空值,与undefined值相等
var width;
// 变量width没有初始值,将被赋予值undefined
undefined 派生自 null
JavaScript 把它们定义为相等的
alert( null == undefined );
// 表达式的值为true
区别
null表示变量是有值的,只是其值为null
用于判断某个值或变量的数据类型
typeof(值或变量);
返回值的数据类型
查看指定的变量值的数据类型
<script type="text/javascript">
var userName,sex="男", age=18;
var date = new Date(); //获取时间日期对象
var arr = new Array(); //定义数组
document.write("userName的返回值为:"+typeof(userName)+"
");
document.write("sex的返回值为:"+typeof(sex)+"
");
document.write("age的返回值为:"+typeof(age)+"
");
document.write("date的返回值为:"+typeof(date)+"
");
document.write("arr的返回值为:"+typeof(arr)+"
");
document.write("true的返回值为:"+typeof(true)+"
");
document.write("null的返回值为:"+typeof(null)+"
");
</script>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BwnkHxyk-1681960137368)(./assets/image-20230407213305524.png)]
类型 | 运算符 |
---|---|
算术运算符 | + - ***** / % ++ — |
比较运算符 | > < >= <= == != === !== |
逻辑运算符 | && || ! |
赋值运算符 | = += -= |
==:用于一般比较,在比较时会自动进行数据类型隐式转换
===:用于严格比较,只要数据类型不匹配,就返回 false
"1"==true; //返回true
"1"===true; //返回false
if(条件表达式) {
//条件为真时要执行的代码
} else {
//条件为假时要执行的代码
}
var age = 18;
if (age > 18) {
alert("你已经是成年人了");
} else if (age == 18) {
alert("恭喜您成为成年人");
} else{
alert("你还是未成年人");
}
switch (条件表达式) {
case 常量1 :
//JavaScript语句1;
break;
case 常量2 :
//JavaScript语句2;
break;
...
default :
//JavaScript语句3;
}
var age = 18;
switch(age) {
case 20:
alert("你已经是成年人了")
break;
case 18:
alert("恭喜您成为成年人");
break;
default:
alert("你还是未成年人");
}
for
for(初始化; 条件表达式; 增量) {
//JavaScript代码;
}
while(条件表达式) {
//JavaScript代码;
}
do {
//循环体
}while (条件表达式);
for (变量 in 对象) {
//循环体
}
var fruit=["apple","orange","banana","peach"];
for(var i in fruit) {
document.write(fruit[i]+"
");
}
<script type="text/javascript">
var i=0;
for(i=0;i<=5;i++) {
if(i==3) {
break;
}
document.write("这个数字是:"+i+"
");
}
</script>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n4clBZiG-1681960137368)(./assets/image-20230407213855201.png)]
<script type="text/javascript">
var i=0;
for(i=0;i<=5;i++) {
if(i==3) {
continue;
}
document.write("这个数字是:"+i+"
");
}
</script>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cw6KyhHv-1681960137368)(./assets/image-20230407213859369.png)]
单行注释
多行注释
//定义age变量为20
var age=20;
/*
定义age变量且初始值为18
判断当age变量大于等于18时,弹出“您已经成年啦”
*/
var age=18;
if(age>=18) {
alert("您已经成年啦");
}
ECMA-262描述了一组具有特定用途的关键字
可用于表示控制语句的开始或结束,或者用于执行特定操作等
关键字 | ||||
---|---|---|---|---|
break | delete | if | this | while |
case | do | in | throw | with |
catch | else | instanceof | try | |
continue | finally | new | typeof | |
debugger | for | return | var | |
default | function | switch | void |
ECMA-262还描述了一组不能用作标识符的保留字
在这门语言中还没有任何特定的用途,但有可能在将来被用作关键字
保留字 | ||||
---|---|---|---|---|
abstract | debugger | float | long | short |
boolean | double | goto | native | static |
byte | enum | implements | package | super |
char | export | import | private | synchronized |
class | extends | int | protected | throws |
const | final | interface | public | transient |
volatile |
alert("提示信息");
在点击对话框“确定”按钮前,不能进行任何其他操作消息对话框通常可以用于调试程序与document.write()相似,消息对话框输出的内容可以是字符串或变量
alert("你好,JavaScript");
var date=prompt("请输入今天是几月几号","");
Chrome开发人员工具