记录学习js的相关基础知识和部分案例,如有高见,望指出,在此感谢!
1 预解析:
1 . js引擎运行js分为两步: ①预解析 ②代码执行
(1) 预解析js引擎会把js里面所有的 var 还有 function 提升到当前作用域的最前面
(2) 代码执行 按照代码书写的顺序从上往下执行
- 预解析分为 变量预解析(变量提升) 和 函数预解析(函数提升)
(1) 变量提升 就是把所有的变量声明提升到当前的作用域最前面 不提升赋值操作
(2)函数提升 就是把所有的函数声明提升到当前作用域的最前面 不调用函数
经典预解析案例代码:
f1();
console.log(c);
console.log(b);
console.log(a);
function f1(){
var a= b = c = 9; //此处相当于var a = 9;b = 9; c = 9; b 和 c 没有定义相当于全局变量,
实在要简写可以如下写: var a = 9, b = 9, c =9;
console.log(a);
console.log(b);
console.log(c);
}
预处理后代码如下:
function f1(){
var a;
a = b = 9;
console.log(a);
console.log(b);
console.log(c);
}
f1();
console.log(c);
console.log(b);
console.log(a);
以上案例代码预处理后 输出结果:
9
9
9
9
9
报错
2 对象:
1 对象的概念
对象是一个具体的事物。(例如: 手机--是泛指不是对象,我的华为手机--具体事物,是对象)
对象由 属性 和 方法 组成。
属性:事物的特征,在对象中用属性来表示。(常用名词表示)例如:手机的颜色、大小、形状是属性!
方法:事物的行为,在对象中用方法来表示。(常用动词) 例如:手机可以打电话、发短信是方法!
2 创建对象的三种方式:
1 利用字面量创建对象:(对象字面量:就是花括号{}里面包含表达这个事物(对象)的属性和方法!)
var obj = {
name:'鸣人',
age:18,
sex:'男',
play: function(){
console.log('The art of shadow splitting')
}
}
console.log('obj.name')
console.log('obj.age')
console.loh('obg.sex')
obj.play()
...1 利用字面量创建对象:
(1)里面的属性或者方法我们采用键值对的形式 键 属性名 : 值 属性名
(2)多个属性或者方法中间用逗号隔开的
(3)方法冒号后面跟的是一个匿名函数
...2 使用对象:
(1)调用对象的属性 采用 => 对象名.属性名(.理解为 xx的yy) 如:obj.age
(2)调用属性的另一个方式 => 对象名['属性名'] 如:obj['age']
(3)调用对象的方法 => 对象名.方法名()
2 利用new Object创建对象:
var obj = new Object();
obj.name = '王二';
obj.age = '20';
obj.sex = '男';
obj.play = function(){
console.log('You play very good!')
}
(1) 我们是利用 等号 = 赋值 的方式 添加对象的属性和方法
(2)每个属性和方法之间用 分号结束
3 利用构造函数创建对象:
1 使用构造函数的原因和构造函数的概念:
(1)更加方便和简洁,将相同的代码封装在一起,不同的对象调用构造函数能减少重复操作。
(2)构造函数:一种特殊函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与new运算符一起使用。我们把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面
function Star(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
this.sing = function(sang){
console.log(sang);
}
}
var hg = new Star('胡歌', 18, '男')
console.log(hg.name);
console.log(hg.age);
console.log(hg['sex']);
hg.sing('忘记时间');
2 使用构造函数注意点:
(1)构造函数名字首字母要大写
(2)构造函数不需要return 就可以返回结果
(3)调用构造函数,必须使用 new
(4)只要new Star()调用函数就创建一个对象 hg {}
(5)构造函数内部属性和方法前面必须加this
3 构造函数和对象区分:
① 构造函数 泛指 某一大类事物 如:明星
② 对象 特指 某一个具体的事物 如:胡歌
③ 利用构造函数创建对象的过程成为对象的实例化
3 查文档(用MDN查文档):
学习对象中的方法步骤:
1 查阅该方法的功能
2 查看里面参数的意义和类型
3 查看返回值的意义和类型
4 通过demo进行测试