03 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(原型对象)