欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JS函数类型与数据类型学习

程序员文章站 2022-05-21 23:20:37
...

一. 函数类型, 匿名函数

1.命名函数
  1. // 有名字的函数
  2. // 命名: 动 + 名
  3. // 声明
  4. function getName(username) {
  5. let a = "猪";
  6. return "Hello " + a + username;
  7. }
  8. // 调用
  9. console.log(getName("老师")); // Hello 猪老师
2.匿名函数
  1. //执行方式1: 立即执行
  2. //IIFE
  3. (function(username) {
  4. console.log("Hello " + username);
  5. })("灭绝老师");
  6. console.log(
  7. (function(username) {
  8. return "Hello " + username;
  9. })("灭绝老师")
  10. );
  1. // 执行方式2: 保存到一个变量中
  2. // 函数表达式
  3. const getUserName = function(username) {
  4. return "Hello " + username;
  5. };
  6. console.log(getUserName("马老师")); //Hello 马老师
3.箭头函数

使用 箭头函数 来简化匿名函数的声明

  1. let f1 = function(a, b) {
  2. return a + b;
  3. };
  4. // 1. 去掉 function
  5. // 2. 在参数括号(...) 与 大括号{...} 之间使用 胖箭头 => 连接
  6. f1 = (a, b) => {
  7. return a + b;
  8. };
  9. // 如果只有一条语句,return ,可以不写大括号
  10. f1 = x => x * 2;
  11. console.log(f1(40));

二. 数据类型

1.原始类型(简单类型、基本类型、单值类型)
  • 不可再分, 是构成其它复合类型的基本单元
  • 原始类型也叫简单类型, 基本类型: 一个变量,存一个值
类型 举例
数值 number 123
字符串值 string php
布尔值 boolean true
undefined值 undefined undefined
object值 null null
示例:
  1. //数值number
  2. console.log(123, typeof 123);
  3. //字符串值string
  4. console.log("php", typeof "php");
  5. //布尔值boolean
  6. console.log(true, typeof true);
  7. //undefined值
  8. console.log(undefined, typeof undefined);
  9. //object值
  10. console.log(null, typeof null);
2.引用类型
  • 引用类型, 都是对象, 默认返回 object ,函数除外 function
  • 引用类型: 类似其它语言中的”复用类型”, 集合类型
  • 引用类型的数据,由一个或多个, 相同, 或不同类型的”原始类型”的值构造
  • 是一个典型的: 多值类型
类型 举例
数组 array [“phone”, “computer”, “car”]
对象 object {phone:”huawei”, compute:”联想”, car:”小鹏”}
函数 function total:function(){}
示例:
  1. //数组
  2. const arr = ["手机", 2, 5000];
  3. // 数组的索引是从0开始递增的正整数, 0, 1, 2
  4. console.log(arr[0]);//手机
  5. console.log(arr[1]);//2
  6. console.log(arr[2]);//5000
  7. //对象
  8. let obj = { name: "手机", num: 2, price: 5000 };
  9. // 对象 更像一个语义化的 数组
  10. console.log(obj["name"]);// 手机
  11. console.log(obj["num"]);//2
  12. console.log(obj["price"]);//5000
  13. //函数
  14. // 对象最吸引人的,不是数组的语义化封装, 而是对数据操作的封装, 方法(语法与函数是一样的)
  15. // 本质上来说, 对象, 就是变量与函数的封装, 内部, 变量->属性, 函数 -> 方法
  16. obj = {
  17. name: "手机",
  18. num: 3,
  19. price: 7000,
  20. // total: 方法,实际上还是一个属性,只不过它的值是一个函数
  21. total: function () {
  22. let str = `${this.name} 总计 ${this.num * this.price} 元`;
  23. return str;
  24. },
  25. };
  26. console.log(obj.total());//手机 总结 21000 元