JS 学习笔记 | 函数与对象

2020-05-19  本文已影响0人  青年心路

一、函数

1.什么是函数

函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块,它可以拥有某些特定的功能。

2.函数的语法

2.1 使用函数声明

语法:

function 函数名(函数参数1, 函数参数2) {
    代码逻辑
}

例如:

function sayHi() {
    console.log("hi~");
}

注意:定义函数需要使用 function 关键字定义,然后通过指定函数名(函数名遵循命名规范即可), 函数参数可以有也可以没有。

2.2 使用函数表达式

语法:

var 变量名 = function() {
    代码逻辑
}

例如:

var sayHi = function() {
    console.log("hi~");
}

2.3 使用构造函数

语法:

var 变量 = new Function();

例如:

var sayHi = new Function();

注意:这种方式不是很直观,不推荐使用。

3.调用函数

函数在调用时需只要使用 函数名() 的形式即可,如果有参数的话,可以在括号里传入参数。

例如:

sayHi();    // hi~

注意

4.函数的类型

4.1 无参无返回值

function 函数名() {
}

4.2 无参有返回值

function 函数名() {
    return true;
}

4.3 有参无返回值

function 函数名(uname) {
}

4.4 有参有返回值

function 函数名(uname) {
    return uname;
}

名词解释:

4.5 函数的补充

4.5.1 不能在非函数的代码块中声明函数

if (a > 0) {
    function func() {}  // wrong way
}

4.5.2 使用 name 属性获取函数名

function func() {}
func.name   // func

4.5.3 使用 length 属性获取函数的参数个数

function func(num1, num2) {}
func.length

4.5.4 自动执行函数

(function() {
    代码逻辑
}());

或者

(function() {
    代码逻辑
})();

注意:该函数不需要调用就能够自动执行。

5.函数的作用域

作用域是指变量存在的范围,在 JS 中一共存在两种作用域:

和作用域对应的,JS 中也存在两种变量:

二、对象

对象是大括号定义的无序的数据集合,由键值对构成,键和值之间使用冒号隔开,大括号末尾要使用分号,表示对象定义结束。
对象是 JavaScript 的核心概念,也是最重要的数据类型。JavaScript 的所有数据类型都可以被视为对象。此外,JavaScript 允许自定义对象。

1.定义对象

1.1 使用大括号

语法:

var obj = {
    key: value
};

上面的代码定义了对象 obj,对象中有一个属性,如果需要定义多个属性需要在 value 后面添加逗号,最后一个属性不需要添加。

1.2 使用 new 关键字

语法:

var obj = new Object();
obj.key = value;

1.3 使用 create 方法

语法:

var obj = Object.create(null);

总结:一般来说,第一种采用大括号的写法比较简洁,也是最常用的一种创建对象的写法,第二种采用构造函数的写法清晰的表示了意图,第三种写法一般用在需要对对象继承的场景。

2.对象的读写

2.1 读取属性

读取对象的属性,有两种方法:一种是使用点 . 运算符,还有一种是使用方括号 [] 运算符。
语法:

var obj = {key: value};
console.log(obj.key);
console.log(obj[value]);

例如:

var swagger = {name: "swagger"};
console.log(swagger.name);  // swagger
console.log(swagger["name"]);  // swagger

注意:使用方括号读取属性时必须加引号

2.2 写入属性

var student = new Object();
student.uname = "tom";
student.age = 21;
student.gender = "男";
student.study = function() {
    console.log("学习");
}

2.3 中括号和 点 符号的区别

中括号总能替代 点 符号,但是 点 符号不一定能全部替代中括号

3.对象属性的操作

JavaScript 为对象提供了一系列内置的方法,方便我们更好的操作对象。

4.对象的引用

如果有多个变量名指向一个对象,那么它们都称为这个对象的引用。
也就是说这些对象共同指向同一个内存地址,修改其中一个变量指向的值,就会影响到其它所有变量指向的值。

在这里插入图片描述

代码演示:

var obj = {fire: "burn"};
var prop1 = obj;
var prop2 = obj;

console.log(prop1); // {fire: "burn"}
console.log(prop2); // {fire: "burn"}

// 修改其中一个引用的值
prop1.fire = "extinguish"
console.log(obj);   // {fire: "extinguish"}
console.log(prop1); // {fire: "extinguish"}
console.log(prop2); // {fire: "extinguish"}
上一篇 下一篇

猜你喜欢

热点阅读