
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);}// 结果:01234
2-2 while循环
while (条件表达式) {代码块;}// 条件满足执行代码块,条件不满足跳出循环// 案例:var i = 0;while (i < 5) {console.log(i);i++;}// 结果:01234
2-3 for…in迭代器
var arr = [1, 2, 3, 4, 5]for (num in arr) {console.log(num);}// 结果:01234
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
属性操作
读取或修改属性
```json console.log(obj.name) obj.name = ‘lili’
console.log(obj[‘name’]) obj[‘name’] = ‘honghong’
- 删除属性```jsondelete obj['name']delete obj.name
监测属性是否出存在
'name' in obj
3-2 声明类(构造函数)
```json 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`可以判断一个对象是否属于某个构造函数<a name="3-3-this"></a>### 3-3 this- this表示方法 所属的对象- 全局函数中的this 指向 window<a name="JVr3z"></a>### 3-4 原型和原型链<a name="zoAvM"></a>#### 什么是原型每一个JavaScript对象都和另一个对象相关联, 并从另一个对象继承属性,另一个对象就是"原型"<br />用直接量创建的对象 都具有同一个原型对象 Object.prototype<a name="d3czA"></a>#### 原型链对象的原型也有原型,构成了原型链<a name="1z3X5"></a>#### 获取原型```json构造函数.prototype对象.__proto__
给原型添加属性或方法
给原型添加属性和方法,以该对象为原型的对象 都可以使用该方法
检测属性 是自有属性还是继承自原型的属性
obj.hasOwnProperty(proName)
创建对象时指定原型
Object.create(原型对象)
