2020.0428---函数提升、递归、对象及数组

一、js的编译和执行
Js是一门解释性语言,预先编译,再执行,先通读全文,再解释含义。找到var和function,做出对应提升。
**编译时:**提升
**执行时:**按照逻辑,结构正常执行
变量和函数会提升:
**Var的提升:**提前声明。=号的位置赋值
` ``js
console.log(a); // undefined
var a = 10;
console.log(a); // 10
```- ↑↑↑↑等价于↓↓↓↓

     ```js
    var a;
    console.log(a);     // undefined
    a = 10;
    console.log(a);     // 10 

**Function的函数提升:**整体提升,即提前声明,又提前赋值。

如果var遇到function:
1:赋值式创建函数
var fn = fucntion(){}
提升的是var,不是function
2:变量和函数重名:
var a = “hello”;
function a(){}
Var提升的更高,所以function占便宜,生效的是function。
二、函数的高级应用–递归
function fn(){
fn();
}
fn();
在函数内部执行自己
递归就是函数自己调用自己
递归类似于循环
递归函数要注意停止/返回,否则会造成死循环
递归比较消耗性能,尽量少用
递归的缺点:内存溢出,浪费大量性能,占用过多的进程
递归是一个逻辑算法的体现
递归如果控制好结束条件,可以模拟循环,解决循环能解决的问题,所以,直接递归虽然不好,但是可以利用递归的思想解决一些实际问题。
三、对象的介绍
1:什么是对象
其实就是一种事物的描述,在程序中对象是一种数据类型,比如描述水杯的外观、型号、容量、形状等把这些信息全部组合打包用来表示一件事物之后,就叫对象。
程序中的对象主要用来存储信息
2:如何得到对象(创建对象)
字面量
var o1 = {}
构造函数
var o2 = new Object();
3:对象的意义和本质
**意义(功能):**存储数据(信息),编程(面向对象编程)
**本质:**键值对(属性名和属性值成对出现,属性名= = 键;属性值==值)
4:对象的操作
点语法(.)
对象.属性名:var o = {};
读:console.log(o.name);
写:o.name = “张三”;
o.age = 18;
o.sex = “男”
o.sayHello = function(){
Console.log(“你好,我叫:” + o.name)
}
字面量创建对象时,可以很方便的立即写入初始属性:
var obj = {
name: “Admin”,
age: 18,
sex: “男”,
sayHello:function(){
console.log(“你好,我叫:” + obj.name);
}
};
**注:**任何两个对象都不相等,如果相等了,意味着就是一个对象
四、数组的介绍
1:什么是数组
数据的组合,一组数据
当需要操作多个数据时,可以给数据打包,叫做数组
数组其实也是对象,只是储存数据的形式不一样,但是类型一样
2:如何得到数组
字面量:var r1 = [];
构造函数:var r2 = new Array();
区别:当字面量内只有一个数值型数据时,表示一个数据。
当构造函数内只有一个数值型数据时,表示长度
注意区别,按需选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值