1.变量
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
</html>
<script type="text/javascript">
// 1.标识符
// 由字母、数字、下划线和$组成,数字不能开头
num = 100
num10 = 200
num_ = 300
$num = 400
// a# = 10 标识符中不能有#
// 23num = 100 数字不能开头
你好 = 'hello' // 语法上允许标识符中有中文,但是实际开发的时候不要这样用
// 2.变量
/*
语法一:
变量名 = 值
*/
name = '张三'
console.log(name) // console.log() 和 python中的print功能类似
name = '小明'
console.log(name)
message = "hello world!"
console.log(message)
/*
语法二:
var 变量名 = 值
*/
var age = 18
console.log(age)
age = 20
console.log(age)
/*
语法三:
let 变量名 = 值
*/
let score = 98
console.log(score)
score = 100
console.log(score)
/*
语法四:
const 变量名 = 值
*/
const sex = '男'
console.log(sex)
// sex = '女' # 报错,const定义的变量不能修改
// ============前三种定义变量的语法的对比==============
/*
如果用这三种方法定义变量都是在块和函数的外面,没有区别(都是全局的)
块里面: 在{}里面(js中一个{}会产生一个块)
*/
// 1.块里面定义
{
a = 10
var b = 20
let c = 30
console.log('块里面a:', a)
console.log('块里面b:', b)
console.log('块里面c:', c)
}
console.log('块外面a:', a)
console.log('块外面b:', b)
// 如果用let在{}中定义变量,那么这个变量只能在这个{}里面使用
// console.log('块外面c:', c)
// 2.函数里面定义
function func1(){
// 函数体
a1 = 100
var a2 = 200
let a3 = 300
console.log('函数里面a1', a1)
console.log('函数里面a2', a2)
console.log('函数里面a3', a3)
}
func1()
console.log('函数外面a1', a1)
// 用var定义在函数中的变量,只能在当前函数中使用
// console.log('函数外面a2', a2)
// 用let定义在任何{}中的变量,都只能在当前{}中使用
// console.log('函数外面a3', a3)
// ==================其他的特殊情况=================
// 1.用关键字定义变量的时候,可以不给变量赋值,默认值是undefined
var student
console.log(student) // undefined
var p1,p2
console.log(p1, p2) // undefined undefined
</script>
2.运算符
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
</html>
<script type="text/javascript">
// 运算符: 数学运算符、比较运算符、逻辑运算符、赋值运算符
// 1. 数学运算符: +, -, *, /, % (和数学一样)、++、--
console.log(20 + 30)
console.log(20 - 30)
console.log(20 * 30)
console.log(20 / 30)
console.log(5 % 2)
// ++(自加1)、--(自减1)
// 变量++ / ++变量 - 变量 = 变量+1
// 变量-- / --变量 - 变量 = 变量-1
num = 10
num++ // num = 11
++num // num = 12
--num // num = 11
console.log(num)
// 坑:++/--写在前面和后面的不同
a = 10
b = a++ // b=a;a+=1
console.log(b) // 10
a = 10
b = ++a // a+=1; b=a
console.log(b) // 11
// 练习:
num1 = 10
num2 = 20
num3 = num1++ + ++num2 - ++num1 - num2-- // 10+21-12-21
console.log(num1, num2, num3) // 12 20 -2
// 2.比较运算符: >, <, >=, <=, ==, !=, ===, !==
// 1) == - 判断值是否相等
console.log(5 == 5) // true
console.log(5 == '5') // true; 如果比较的数据类型不同,会先转换成相同类型再看这两个数据是否相等
// 2)=== - 相当python的==
console.log(5 === 5) // true
console.log(5 === '5') // false
// 3)js不支持表示范围的连写方式: 10 <= a <= 100
a = 500
// console.log(10<=a<=100) //true; 结果错误!
// 3.逻辑运算符:&&(逻辑与)、||(逻辑或)、!(逻辑非)
// 功能和pyhon中and、or和not一模一样!
console.log(true && true)
console.log(false && true)
console.log(0 && 200)
// 4.赋值运算符:=、+=、-=、*=、/=、%=
// 功能和python一模一样!
// 5.运算符的优先级和python一样的
</script>
3.分支结构
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
</html>
<script type="text/javascript">
// js中的分支结构有两种:if语句、switch