第三节:js基础语法

js基础语法

1、分支结构

1-1 if 基础语法

if (条件表达式) {
    代码块;
}
// 1. 当条件表达式结果为true,会执行代码块;反之不执行
// 2. 条件表达式可以为普通表达式
// 3. 0、undefined、null、""、NaN为假,其他均为真

1-2 if 复杂语法

// 1.双分支
if (表达式1) {
    代码块1;
} else {
    代码块2;
}

// 2.多分支
if (表达式1) {

} else if (表达式2) {

} 
...
else if (表达式2) {

} else {

}

1-3 if 嵌套

if (表达式1) {
    if (表达式2) {

    }
}

1-4 案例:

var weather = prompt("天气(晴|雨)");  // 文本输入弹出框
if (weather == "晴") {
    alert("今天是晴天")
} else if (weather == "雨") {
    alert("今天是雨天")
} else {
    alert("输入信息有误")
}

2、循环结构

2-1 or循环

for (循环变量①; 条件表达式②; 循环变量增量③) {
    代码块④;
}
// for循环执行的顺序:① ②④③ ... ②④③ ②,入口为①,出口为②,②④③就是循环过程

// 案例:
for (var i = 0; i < 5; i++) {
    console.log(i);
}

// 结果:
0
1
2
3
4

2-2 while循环

while (条件表达式) {
    代码块;
}
// 条件满足执行代码块,条件不满足跳出循环

// 案例:
var i = 0;
while (i < 5) {
    console.log(i);
    i++;
}

// 结果:
0
1
2
3
4

2-3 for…in迭代器

var arr = [1, 2, 3, 4, 5]
for (num in arr) {
    console.log(num);
}

// 结果:
0
1
2
3
4

2-4 break,continue关键词

// 1. break:结束本层循环
// 2. continue:结束本次循环进入下一次循环

3、 JavaScript 对象

3-1 Object类型

创建

  • 直接量

    var obj = {name:'xiaolili', age:100, getInfo:function(
                 console.log(this.age)
             )}
  • new 构造函数

    var obj = new Object()
    obj.name = 'xiaolili'
    obj.age = 100

属性操作

  • 读取或修改属性

    console.log(obj.name)
    obj.name = 'lili'
    
    console.log(obj['name'])
    obj['name'] = 'honghong'
  • 删除属性

    delete obj['name']
    delete obj.name
  • 监测属性是否出存在

    'name' in obj

3-2 声明类(构造函数)

function User(name, age){
    this.name = name
    this.age = age

    this.getInfo = function(){
        console.log(this.name, this.age)
    }
}

var u = new User('鲁迅', 45)
  • 每个对象都有一个属性 .constructor 从而获取其构造函数
  • 使用运算符instanceof可以判断一个对象是否属于某个构造函数

3-3 this

  • this表示方法 所属的对象
  • 全局函数中的this 指向 window

3-4 原型和原型链

什么是原型

每一个JavaScript对象都和另一个对象相关联, 并从另一个对象继承属性,另一个对象就是"原型"
用直接量创建的对象 都具有同一个原型对象 Object.prototype

原型链

对象的原型也有原型,构成了原型链

获取原型

构造函数.prototype    
对象.__proto__

给原型添加属性或方法

给原型添加属性和方法,以该对象为原型的对象 都可以使用该方法

检测属性 是自有属性还是继承自原型的属性

obj.hasOwnProperty(proName)

创建对象时指定原型

Object.create(原型对象)
上一篇
下一篇
Copyright © 2022 Egon的技术星球 egonlin.com 版权所有 帮助IT小伙伴学到真正的技术