2019-08-22_Note_Day24

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)

你可能感兴趣的:(2019-08-22_Note_Day24)