JavaScript

JavaScript 是世界上最流行的脚本语言。
HTML 定义了网页的内容;
CSS 描述了网页的布局;
JavaScript 控制了网页的行为。

  1. 概述
    历史
    1992 年 Brendan Eich 发明了 JavaScript;
    1995 年 Netscape 使用了 JavaScript;
    1997 年 ECMA 标准了 JavaScript。
    JavaScript = ECMAScript + BOM + DOM
    JavaScript 是面向对象的解释型动态编程语言。
    function main(args) {
    alert("Hello, world.");
    return 0;
    }

用法

输出
alert('Welcome to JavaScript!')
console.log('I am JavaScript!')
document.write('Hello, world!')
document.getElementById('app').innerHTML = Date()

  1. 面向过程
    数据类型和运算符
    值类型:栈 Number Boolean String Null Undefined Symbol // 包装对象
    引用类型:堆 Function Array Object // typeof instanceof
    标志符:字母数字下划线和美元符号,大小写敏感。
    变量:var year = undefined; let id = 1; let visible = true; let name = "Alice";
    常量:const PI = 3.1415926;
    运算符和表达式:数学运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 连接运算符 var value = 1 + 2;
    // 行注释 /* 块注释 */ {} // 代码块 // 变量提升和函数提升 // 解构赋值

其他
流程控制 顺序 选择 循环 // if...else if...else/switch...case:break...default:break for/while/do...while/for...in/for...of/forEach break/continue/return/goto
函数 function // 函数参数 返回函数 闭包 高阶函数 map/reduce/filter/sort/every/find/findIndex/forEach 箭头函数 generator
作用域和存储类型 this 指针和引用 // 全局作用域/函数作用域/块作用域 全局变量/局部变量 作用域链 apply()/call()
数组 array // Map() Set()
结构体共用体和枚举类型 object 文件操作 // 原型和原型链

  1. 面向对象
    封装
    function Person(props) {
    this.name = props.name || ''
    this.age = props.age || 0
    }
    Person.prototype.show = function() {
    console.log(${this.name}, ${this.age})
    }
    function createPerson(props) {
    return new Person(props || {})
    }

继承
function inherits(Child, Parent) {
var F = function() {}
F.prototype = Parent.prototype
Child.prototype = new F()
Child.prototype.constructor = Child
}
function Student(props) {
Person.call(this, props)
this.grade = props.grade || 1
}
inherits(Student, Person)
Student.prototype.study = function() {
console.log('Studying')
}

多态
class Animal {
constructor(name) {
this.name = name
}
show() {
console.log(this.name)
}
}
class Cat extends Animal {
constructor(name, color) {
super(name)
this.color = color
}
say() {
return Hello, ${this.name}!
}
}

注:

  1. 类比 C 和 Java;
  2. 概述 数据类型和运算符 流程控制 函数 作用域和存储类型 数组 结构体共用体和枚举类型 指针和引用 文件操作。

附:
关键字和保留字
事件 // onclick
表单 // document.forms['form']['name'].value
JSON // JavaScript Object Notation JSON.parse()/JSON.stringify()
AJAX // Asynchronous JavaScript And XML
异步编程 // setTimeout()/clearTimeout() setInterval()/clearInterval()
Promise // new Promise((resolve, reject) => {})
async await
正则表达式 // RegExp
立即执行表达式 // ;((root) => {})(this);
this // call() apply()
对象 // Date Math
异常处理 // try...catch...finally throw
代码调试 // 断点/console/debugger
严格模式 // "use strict";

你可能感兴趣的:(JavaScript)