JS函数类型与数据类型学习
程序员文章站
2022-05-21 23:20:37
...
一. 函数类型, 匿名函数
1.命名函数
// 有名字的函数
// 命名: 动 + 名
// 声明
function getName(username) {
let a = "猪";
return "Hello " + a + username;
}
// 调用
console.log(getName("老师")); // Hello 猪老师
2.匿名函数
//执行方式1: 立即执行
//IIFE
(function(username) {
console.log("Hello " + username);
})("灭绝老师");
console.log(
(function(username) {
return "Hello " + username;
})("灭绝老师")
);
// 执行方式2: 保存到一个变量中
// 函数表达式
const getUserName = function(username) {
return "Hello " + username;
};
console.log(getUserName("马老师")); //Hello 马老师
3.箭头函数
使用 箭头函数 来简化匿名函数的声明
let f1 = function(a, b) {
return a + b;
};
// 1. 去掉 function
// 2. 在参数括号(...) 与 大括号{...} 之间使用 胖箭头 => 连接
f1 = (a, b) => {
return a + b;
};
// 如果只有一条语句,return ,可以不写大括号
f1 = x => x * 2;
console.log(f1(40));
二. 数据类型
1.原始类型(简单类型、基本类型、单值类型)
- 不可再分, 是构成其它复合类型的基本单元
- 原始类型也叫简单类型, 基本类型: 一个变量,存一个值
值 | 类型 | 举例 |
---|---|---|
数值 | number | 123 |
字符串值 | string | php |
布尔值 | boolean | true |
undefined值 | undefined | undefined |
object值 | null | null |
示例:
//数值number
console.log(123, typeof 123);
//字符串值string
console.log("php", typeof "php");
//布尔值boolean
console.log(true, typeof true);
//undefined值
console.log(undefined, typeof undefined);
//object值
console.log(null, typeof null);
2.引用类型
- 引用类型, 都是对象, 默认返回 object ,函数除外 function
- 引用类型: 类似其它语言中的”复用类型”, 集合类型
- 引用类型的数据,由一个或多个, 相同, 或不同类型的”原始类型”的值构造
- 是一个典型的: 多值类型
值 | 类型 | 举例 |
---|---|---|
数组 | array | [“phone”, “computer”, “car”] |
对象 | object | {phone:”huawei”, compute:”联想”, car:”小鹏”} |
函数 | function | total:function(){} |
示例:
//数组
const arr = ["手机", 2, 5000];
// 数组的索引是从0开始递增的正整数, 0, 1, 2
console.log(arr[0]);//手机
console.log(arr[1]);//2
console.log(arr[2]);//5000
//对象
let obj = { name: "手机", num: 2, price: 5000 };
// 对象 更像一个语义化的 数组
console.log(obj["name"]);// 手机
console.log(obj["num"]);//2
console.log(obj["price"]);//5000
//函数
// 对象最吸引人的,不是数组的语义化封装, 而是对数据操作的封装, 方法(语法与函数是一样的)
// 本质上来说, 对象, 就是变量与函数的封装, 内部, 变量->属性, 函数 -> 方法
obj = {
name: "手机",
num: 3,
price: 7000,
// total: 方法,实际上还是一个属性,只不过它的值是一个函数
total: function () {
let str = `${this.name} 总计 ${this.num * this.price} 元`;
return str;
},
};
console.log(obj.total());//手机 总结 21000 元