认识JavaScript
JavaScript是一种属于网络的脚本语言,已经被广泛用于web应用开发,常来为网页添加各种各样的动态功能,为用户提供更流畅的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能。
- HTML定义了网页的内容
- CSS渲染了网页的布局和样式
- JavaScript制定了网页的行为
JavaScript是写给浏览器的一门脚本语言,目前所有的浏览器都支持JavaScript
JavaScript是轻量级的一门面向对象的编程语言
不得不提的一件事:JavaScript和java是没有任何关系的!(原名为LiveScript,只是蹭热度改名为JavaScript)
简单使用JavaScript
在HTML中使用JavaScript有两种方式:
- 在HTML中使用< script>< /script>标签,嵌入JavaScript脚本的内嵌式
- 在HTML中使用< script src="" >< /script>标签,引入外部.js文件的外链式
注意:如果使用了外链式,又在该标签内写了js代码,那么标签内的代码不会执行,如果还想在页面中使用内嵌式,再写一个script标签即可。script是一个双标签,即使使用外链式标签中没有内容,也要有结束标签。
<!-- 外链式-->
<script src="../js/js_demo1.js"></script>
<!-- 内嵌式-->
<script>
document.write("hello javaScript")
</script>
语法规则
JavaScript严格区分大小写
JavaScript是弱类型语言。
- 弱类型语言:不是没有类型,而是定义变量时,不需要明确具体的数据类型
JavaScript变量的定义:var 变量名=值
JavaScript中的数据类型:
- 数字类型:number,表示任意数字
- 布尔类型:boolean,可以为true、false
- 字符串类型:string,单引号和双引号都可以声明字符串,因为JavaScript没有字符类型
- 引用类型:object
- 空值:null,表示空,属于object类型
- undefined:表示一个未初始化的变量
使用typeof可以返回变量的真实类型
//定义变量
var num1 = 100;
var num2 = 99.99;
var str = "haha";//单引号双引号都可以用来表示字符串
var flag = true;
document.write(num1+"<br>");
document.write("num1的数据类型是:"+typeof(num1)+"<br>");
document.write(num2+"<br>");
document.write("num2的数据类型是:"+typeof (num2)+"<br>")
document.write(str+"<br>");
document.write("str的数据类型是:"+typeof str+"<br>")
document.write(flag+"<br>")
document.write("flag的数据类型是:"+typeof flag+"<br>")
三种输出方式
- window.alert(""),提示框效果显示
- console.log(""),在控制台以日志的方式显示
- document.write(""),直接显示在HTML页面中
var num="哈哈哈";
//输出在弹出的对话框中
window.alert(num);
//输出在页面上(不管script标签写在哪,该输出的语句都在body标签内)
document.write(num);
//输出在浏览器控制台中
console.log("日志信息");
console.warn("警告信息");
console.error("错误信息");
知识点
运算符中存在一个 === 。
=表示赋值,==表示比较值相等,===表示比较类型和值相等
var str = "100";
var num = 100;
document.write("使用==相等吗?--"+(str==num))
document.write("<br>使用===相等吗?--"+(str===num))
布尔类型的运算中:
- 数字类型非0就是真
- 字符串类型非""(空串)就是真
- 0,null,undefined等都是false
var num1 = 15;
if (num1){
console.log("真的")
}
var str1 = "";
if (str1){
console.log("真的")
}else{
console.log("假的")
}
函数
JavaScript中的函数其实就是方法。但是格式和java中的方法不太相同
function 函数名(参数列表){
方法体
//有返回值就写return,没有就不写
}
特点:
- 函数中不需要声明返回值类型
- 参数列表中的参数不需要指定数据类型
- 不存在java中的重载的概念,只要两个函数的函数名相同,后面的函数就会把前面的函数覆盖掉
- 使用函数时,如果函数需要参数,调用时不传参也不会报错,如果函数不需要参数,调用时传入了参数也不会报错
事件
JavaScript使我们有能力创建动态页面,事件是可以被JavaScript检测到的行为,当事件发生时,就可以动态的做一些事情
事件三要素:
- 事件源:在页面中,用户可以操作的元素都是事件源
- 事件:用户对于事件源作出的行为(比如鼠标点击、悬浮···)
- 监听器:用来监听事件,当事件发生时,就会调用相应的函数处理事件
事件通常和函数配合使用,这样就可以通过发生事件来驱动函数执行,从而根据用户的行为来实现一些动态的效果
事件可以是浏览器的行为,也可以用户的行为
常用事件:
事件名 | 说明 |
onload | 某个页面被完成加载 |
onsubmit | 表单被提交时(事件源是form表单) |
onclick | 鼠标单击一个对象 |
onblur | 鼠标双击一个对象 |
onfocus | 失去焦点 |
onchange | 获得焦点(鼠标指针放在元素上,该元素就获得焦点) |
onkeydown | 对象中的内容被改变 |
onkeypress | 某个键盘按键被按下 |
onkeyup | 某个键盘按键被按下或按住 |
onmousedown | 鼠标按键被按下 |
onmouseup | 鼠标按键被松开 |
onmouseover | 鼠标被移动到某个元素上 |
onmouseout | 鼠标移出某个元素 |
onmousemove | 鼠标被移动 |
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript事件</title>
<script>
function clickMethod(){
window.alert("你点击了按钮");
}
function loadMethod(){
window.alert("页面被加载了");
}
function changeMethod(){
window.alert("你修改了文本框的内容")
}
function focusMethod(){
window.alert("文本框获得了焦点")
}
</script>
</head>
<body onload="loadMethod()">
<input type="submit" onclick="clickMethod()" value="按钮">
<input type="text" onchange="changeMethod()" onfocus="focusMethod()">
</body>
</html>