Java Script
JavaScript = ECMAScript + BOM + DOM
一、JavaScript的组成
1. ECMAScript
2. BOM(浏览器对象模型)
3.DOM(文档对象模型)
二、js编程
1. JS添加方法
1) 内部js
2) 外部js
2. 变量
JavaScript中定义变量可以使用var
或者let
关键字
let定义的变量是块级作用域(只能在定义它的花括号中起作用)
var定义的变量是函数级或全局作用域
1) 命名
变量的命名跟Python的变量命名规则相同,除了可以使用$
2) 变量分类
变量可以大致分为基本数据类型和对象类型(object)两大类
基本数据类型包括:
number boolean string null undefined symbol
let a = 100
let b = 1.23
let c = 100 > 50
let d = 'hello world!'
let e = null
let f = undefined
另外,可以使用typeof
运算符类获得变量的类型,可以使用const
关键字定义常量
3)全局对象
3. 运算符
1)算数运算:+ - * / % **
2)比较运算:== != > < >= <= === !==(隐式类型转换)
3)逻辑运算:&&(短路与) ||(短路或) !(非)
4. 分支和循环
1) if
let yearStr = prompt('请输入年份:')
year = parseInt(yearStr)
if (year == yearStr && year > 0) {
let isLeap = year % 4 == 0 && year % 100 != 0 ||
year % 400 == 0
alert(`${year}年${isLeap ? '是':'不是'}闰年`)
} else {
alert('年份错误,请输入有效的年份!')
}
2) 循环
a. for
for (let i = 1; i < 101; i += 1) {
total += i
}
b. while
let i = 1
while (i <= 100) {
total += i
i += 1
}
c. do-while
let i = 1
do {
total += i
i += 1
} while (i <= 100);
document.write(`总和: ${total}`)
d. for-in
let stu = {
name: '小明',
age: 19,
sex: true,
frieds: ['Cang', 'Xiaoze'],
car: {
'brand': 'QQ',
'maxSpeed': '50'
}
}
for (key in stu) {
document.write(stu[key] + '\n')
}
5. 函数
对于功能相对独立且会重复使用的代码段建议封装成函数
1) 定义
function 函数名(参数列表){执行体}
2) 调用
调用函数 - 函数名(参数)
function f(n) {
// n的阶乘
if (n < 0) {
return NaN
}
if (n <= 1) {
return 1
}
let result = 1
for (let i = 2; i < n + 1; i++) {
result *= i
}
return result
}
let n = 49
let k = 6
document.write(f(n) / (f(k) * f(n - k)))
3) 高阶函数
// 延迟跳转页面
let num = 5
let counter = document.querySelector("#counter")
setInterval(() => {
num -= 1
if (num > 0){
counter.textContent -= 1
}else{
location.href = "https://www.baidu.com"
// location.href = "js_example04.html"
}
}, 1000)