1、JS

(1)核心语法
(a)引入方法

首先是内部脚本:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS学习</title>
<script>
// 弹窗
alert("hello");
</script>
</head>
<body>
<script>
// 弹窗
alert("hello world");
</script>
</body>
<script>
// 弹窗
alert("world");
</script>
</html>
会弹出3次!
外部引入:
创建一个后缀为js的文件:
alert("hello world");
以下是全部代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS学习</title>
</head>
<body>
<!--<script>-->
<!-- // 弹窗-->
<!-- alert("hello world");-->
<!--</script>-->
<script src="js/learn.js"></script>
</body>
</html>
结果如下:

总结:
(b)变量


(c)数据类型



(d)函数


(e)自定义对象

<script>
let user={
name:'张三',
age: 18,
sex:'男',
sing(){
alert(this.name+'会唱歌');
}
}
user.sing();
</script>


(f)JSON

将js对象转换成json字符串:
<script>
let person={
name:'张三',
age: 18,
sex:'男',
}
alert(JSON.stringify(person));
</script>

同理,如果想获取JSON下某个属性对应的值时,应该先将其转换成js对象,之后获取


(g)DOM


querySelector获取到的是匹配到的第一个对象:
<body>
<h1 id="test1">111</h1>
<h1>222</h1>
<h1>333</h1>
<script>
let h1=document.querySelector('#test1');
// innerHTML:设置或返回元素的内容
alert(h1.innerHTML);
// 将上述id=test1的输入111改为了下面的内容
h1.innerHTML="输入111";
</script>
</body>
返回h1此时的内容

返回修改后的内容
使用querySelectorAll时表示选取的是数组,在下面调用的时候要用数组的格式

(h)事件监听

因此第二种方法不推荐,绑定同一事件容易被覆盖

习题:

<script>
let d=document.querySelectorAll('tr');
//为每一个tr标签添加鼠标滑入事件
for(let i=0;i<d.length;i++){
d[i].addEventListener('mouseover',function (){
d[i].style.backgroundColor='#f2e2e2';
});
//为每一个tr标签添加鼠标滑出事件
d[i].addEventListener('mouseout',function (){
d[i].style.backgroundColor='#fff';
});
}
</script>
结果和上图一样,鼠标到那一行哪一行就变为红色!




从js文件引入另一个js文件:
将引入的文件先要"暴露"

在要用的文件中进行引入

之后在html引入js时,需要将以上声明为模块化js:
