JavaScript基础
JS (JavaScript) 控制网页的行为
JS是互联网中最流行的脚本语言, 网页、小程序、app等
-
JS是脚本语言
-
JS是轻量级的编程语言
-
JS是可插入HTML页面的编程代码
-
所有现代浏览器均可执行JS代码
JS代码可以借助<script>
标签放到<head>
或者<body>
标签中
JS是由三部分组成:JS语法、文档对象(DOM)、浏览器对象(BOM)。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 第一种js引入方式 -->
<script type="text/javascript">
// js代码注释(单行注释)
/*
js代码注释的多行注释
*/
// document --> 指代HTML
// write --> 写入
document.write("<h1>这是一个标题</h1>")
document.write("<p>这是一个段落</p>")
</script>
<!-- 第二种引入js方式 -->
<script type="text/javascript" src="js/demo1.js"></script>
</body>
</html>
分支结构
-
语法1:
if(条件语句){
代码块
}else{
代码块
} -
语法2:
if (条件){
代码块
}else if(条件){
代码块
}else if(条件){
代码块
}else{
代码块
}
分支结构:else
可以省略不写
- 三目运算符:
- python版:
结果1 if 条件 else 结果2
- java、c、js版:
条件?结果1:结果2 - 条件成立,结果1;反之,结果2
- python版:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
// 定义变量
// 变量名 = 变量值(全局变量)
num = 1
// consol:控制台
// log:日志
console.log(num)
// var 变量名 = 值(函数中的局部变量)
var age = 18
console.log(age)
// let 变量名 = 值({}中的局部变量)
let gender = '男'
console.log(gender)
// const 变量名 = 值(常量)
const stu_id = 'python001'
console.log(stu_id)
// 2. 运算符:
// 1)数学运算符:+、-、*、/、%、**
console.log(1 + 1)
console.log(2 / 3)
console.log(2 % 3)
// 2)比较运算符:>、<、>=、<=、==、!=、===、!==
console.log(10 > 20) // false
// 两边的元素转化成字符串以后是否相等
console.log(5 == 3)
console.log('5' == 5) // true
// 两边的元素转化成字符串以后是否不相等
console.log('5' != 5) // false
// === 直接判断两边数据是否相等
// !== 直接判断两边数据是否不相等
// 3)赋值运算符:=、+=、-=、*=、/=、**=、%=
num_1 = 3
num_2 = 6
num_1 += num_2
// 和python同理
console.log(num_1)
// 逻辑运算符:&&(逻辑与)、||(逻辑或运算)、!(逻辑非运算)
console.log(4 > 3 && 4 < 5)
console.log(4 > 3 && 4 > 5)
console.log(4 > 3 || 4 > 5)
console.log(!(4 > 3 || 4 > 5))
age = 18
if (age >= 18){
console.log('成年')
}else{
console.log('未成年')
}
console.log(age >= 18?'成年':'未成年')
year = 2000
if(year % 4 === 0 && year % 100 !== 0){
console.log('闰年')
}else if(year % 400 === 0){
console.log('闰年')
}else{
console.log('平年')
}
weight = 60
height = 1
if (18.5 <= weight/(height ** 2) && weight/(height ** 2) <= 24.9){
console.log(true)
}else{
console.log(false)
}
</script>
</body>
</html>
循环
-
for-in循环
for(变量 in 序列){代码块}
-
while
while(条件语句){代码块}
-
传统for循环
for(表达式1;表达式2;表达式3){代码块}
-
传统for循环改while循环
表达式1while(表达式2){
代码块
表达式3
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
// 计算1到100的和
// while循环
i = 1
total = 0
while (i <= 100){
total += i
i += 1
}
console.log(total)
// 传统for循环
total = 0
for (i=0;i<=100;i+=1){
total += i
}
console.log(total)
// for-in循环取的是序列中每个元素的下标
// 通过 序列[下标] 的形式再将元素取出
list1 = [10, 20, 30, 40]
for (i in list1){
console.log(list1[i])
}
// document.cookie ---- 获取用户的账号密码信息的cookie
str1 = 'abc123'
for (i in str1){
console.log(i)
}
</script>
</body>
</html>
函数
函数:将重复的代码封装起来,以便重复调用。
作用:
- 降低代码的冗余度。
- 将执行某一功能的代码封装起来,更容易让人理解
在JavaScript中如何封装函数
- 定义函数
function 函数名(形参列表){函数体}
- 调用函数
函数名(实参列表)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
// 计算1~N的值
function num_total(n){
total = 0
for (i=1;i<=n;i+=1){
total += i
}
console.log(total)
}
num_total(100)
num_total(50)
// 练习:计算10和20的和
// 计算100和30的和
function num_sum(a, b){
console.log(a + b)
}
num_sum(10, 20)
num_sum(100, 30)
</script>
</body>
</html>
数组
-
js
中的数组就是Python中的列表 -
数组只有正向下标
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
list1 = ['Python', 'JavaScript', 'C', 'HTML']
// 数组的增删改查
// 增加:push - 向数组末尾添加新元素
list1.push('C++')
console.log(list1)
// 删除:pop() - 删除数组中的最后一个元素
list1.pop()
console.log(list1)
list1.pop()
console.log(list1)
// 修改
list1[1] = 'Java'
console.log(list1)
// 删除:splice(下标,个数) - 从指定下标开始,删除指定个数的数据
list1.splice(0,2)
console.log(list1)
// ['C']
// 查找:
console.log(list1.length)
// 1
console.log(list1[1])
// undefined 超出范围
</script>
</body>
</html>
字符串
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
// 字符串:'' 或者 ""
a = 'abcd'
b = '1234'
// 字符串的拼接
console.log(a + b)
// 字符串的重复(不可用)
// console.log(a*2) NaN
// 字符串比较大小符合编码值比较大小规则
console.log(a > b)
// true
// 查看字符串的长度
console.log(a.length)
// 格式化输出
age = 18
name = '张三'
str1 = `${name}今年${age}岁`
console.log(str1)
</script>
</body>
</html>
字典
字典:{}
表示容器
{key:value}
– key
:说明; value
:值
key:value
-
key
:js
中可以用引号引起来,也可以不使用引号; -
python中
key
如果是字符串,必须使用引号
- 调用字典中的元素
- 方法一:
字典[key]
-[]
中的key
必须加引号(Python只能使用字典[key]
) - 方法二:
字典.key
-.key
不需要加引号
- 方法一:
- 字典的长度(字典是无序的,没有长度,JavaScript和python都一样)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
stu_info_dict = {name:'小红', age:20, score:100, weight:50,height:170}
console.log(stu_info_dict)
console.log(stu_info_dict['name'])
console.log(stu_info_dict.name)
// console.log(stu_info_dict.length)
// 字典的实际应用
stu = [
{name:'李华', age:20},
{name:'李刚', age:25},
{name:'小明', age:17}
]
// 将成年的学生的名字打印出来
for (x in stu){
if (stu[x]['age'] >= 18){
console.log(stu[x]['name'] )
}
}
</script>
</body>
</html>