20220826 第七小组 王茜
JavaScript
脚本语言,解释型,主要用来给HTML网页增加动态功能。
通常的js是运行在浏览器环境下的
JS基本上是web前端的核心!!!
JS的两种模型:
DOM
DOM:(Document Object Model)文档对象模型 对象: document
文档本身就是一个文档对象document
所有的HTML元素都是元素节点
所有的HTML属性都是属性节点
元素的文本是文本节点
注释节点(一般不用)
BOM
BOM:(Browser Object Model) 浏览器对象模型 核心对象:window
navigator:
history:
screen:
location:
回调函数:
一个函数的参数是另一个函数
计时函数:
//计时函数
/*
参数一:函数
参数二:延迟时间
*/
let timer = setTimeout(function(){
document.write("<h1>5秒钟后可以看见我</h1>")
},5000);
//清除计时函数
//参数:要清除哪一个计时器
clearTimeout(timer);
周期性定时器
<script>
//周期性定时器,每隔多少秒走一次
let timer = setInterval(function(){
console.log("123");
},2000);
clearInterval(timer);
</script>
nodejs
运行在计算机环境下,服务器技术,不能操作BOM和DOM,
但是它可以操作文件,操作数据库,实际上是一门后端技术
JS解释器:
不同的浏览器,JS解释器不一样。
火狐:spidermonkey
Chrom、node:v8
Safari:JavaScriptcore
edge:chakra
JS位置问题
document
<script>
/*
向body打印输出
建议放在body里的最下方
页面的加载顺序是从上到下
JS是用来控制页面的显示方式
需要等待页面加载完成,再执行JS
*/
document.write("123")
</script>
JS的简单数据类型:
1、数字(number):整数,正数,小数,负数
2、字符串(string):a,中文,@
3、布尔型(boolean):true(1) false (0)
4、空(null):相当于声明了值为空
5、undefined:未定义,没有值
6、NaN:非数字
7、数组 : var v7 = [1,2,3,4,5];
document.write(v7[2]);
<script>
// Array()是一个函数,返回值就是一个空数组
// JS 里没有方法这个概念,叫做函数
// JS 里的方法不是Java里的方法
// JS里的函数相当于Java里的方法
// JS里没有下标越界
let arr = [1,2,3,4,5];
arr[100] = 10;
document.writeln(arr + "<br>");
document.writeln(arr.length);
</script>
8、对象: var v8 = {
"username" : "admin";
}
document.write(v8.username);
<script>
//对象
// Array()返回一个空数组
// Object()返回一个空对象
// let obj = new Object();
function User(name) {
this.name = name;
}
//创建一个user对象
let user = new User("张三");
console.log(user.name);
</script>
1、2、3这三种是自动类型推断,是弱类型
判断和循环
判断
<script>
/*
在JS中,if(条件)
规定:0、null、undefined为false,剩下的都是true
*/
let a = 1;
if(a = 2){
console.log(a);
console.log("哈哈哈");
}else{
console.log("嘿嘿嘿");
}
</script>
循环
<script>
let arr = [1,2,3,4,5];
//普通for循环
for(let i = 0; i< arr.length; i++){
console.log(arr[i]);
}
//for in 循环
for(i in arr){
console.log(arr[i]);
}
//遍历对象
let student = {
name: "小明",
age: 10
}
for(attr in student){
console.log(attr);
console.log(student[attr]);
}
</script>
常用工具对象
1、Array()
<script>
let arr1 = [1,2,3];
let arr2 = [9,8,7];
//将第二个数组加到第一个数组里
console.log(arr1.concat(arr2));
arr1.push(10);
// 移除数组中的最后一个元素
arr1.pop();
// 移除数组中的第一个元素
arr1.shift();
console.log(arr1);
</script>
2、escape()
对字符串进行编码,编码后无法再用css解码
<script>
let name = "你好";
document.write(escape(name));
</script>
3、eval()
把一个字符串解析成js代码执行
<script>
let js = "1+1";
document.write(eval(js));
//输出结果为:2
document.write(js);
//输出结果为:1+1
</script>
4、isNaN()
isNaN 判断一个值是不是数字,是false,不是true
<script>
document.write(isNaN("哈哈"));
</script>
5、parseInt()
转整数
<script>
document.write(parseInt(10 / 4));
//输出结果为:2
</script>
6、parseFloat()
转小数
<script>
document.write(parseFloat( 10 / 4));
//输出结果为:2.5
</script>
7、Number()
把一个值转成数字
<script>
document.write(Number("11111"));
//输出结果为:11111
</script>
8、 String()
把一个值转成字符串
<script>
document.write(String(123));
//输出结果为:123
</script>
工具对象
String:
charAt,indexOf,lastIndexOf, replace,concat,match, substring,substr,toUpperCase toLowerCase
Math:
random,ceil, floor,round
Date:
getDate,getDay getMonth,getYear getHours,getMinutes