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

函数类型、数据类型

程序员文章站 2022-03-03 21:38:13
...

函数类型

  1. // 命名函数
  2. function sum(a, b) {
  3. return a + b;
  4. }
  5. console.log(sum(1, 2));
  6. // 匿名函数
  7. // 立即执行 IIFE
  8. (function (a, b) {
  9. console.log(a + b);
  10. })(1, 3);
  11. // 函数表达式
  12. let f;
  13. f = function (a, b) {
  14. return a + b;
  15. };
  16. console.log(f(1, 2));
  17. // 箭头函数
  18. // 1. 去掉 function
  19. // 2. 在参数括号(...) 与 大括号{...} 之间使用 胖箭头 => 连接
  20. f = (a, b) => {
  21. return a + b;
  22. };
  23. console.log(f(1, 2));
  24. // 如果只有一条语句,return ,可以不写大括号
  25. // 因为只有一条语句,默认就是return ,所以 return 也可以不写的
  26. let f1;
  27. f1 = (x) => {
  28. return x * 2;
  29. };
  30. f1 = (x) => x * 2;
  31. console.log(f1(40));
  32. console.log(f1(90));
  33. // 没有参数时, 括号一定要写上
  34. f1 = () => "今天天气很好";
  35. console.log(f1());

数据类型

  1. // 原始类型
  2. // 不可再分, 是构成其它复合类型的基本单元
  3. // * number, string, boolean, undefined, null
  4. // typeof 查看类型
  5. console.log(typeof 2);
  6. // 引用类型
  7. // 引用类型, 都是对象, 默认返回 object ,函数除外(返回function)
  8. // array, object, function
  9. // 数组 array
  10. let a = [1, 2, "aaa"];
  11. console.log(a[2]);
  12. // 判断数组类型的正确方法
  13. console.log(Array.isArray(a));
  14. // 对象 object
  15. let o = { name: "aa", sex: "f", age: 20 };
  16. console.log(o["sex"]);
  17. console.log(o.name);
  18. let human = {
  19. name: "aa",
  20. sex: "f",
  21. age: 20,
  22. who: function () {
  23. // 反引号声明的模板字符串, 可以插入变量/表达式, 这叫"插值"
  24. let j = `姓名:${this.name} 性别:${this.sex} 年龄:${this.age}`;
  25. return j;
  26. },
  27. };
  28. console.log(human.who());
  29. // 函数 function
  30. // 函数是一种数据类型 , 并且 还是 对象
  31. console.log(typeof function () {});
  32. // 函数即是函数, 也是对象
  33. console.log(function () {} instanceof Object);
  34. // 函数是数据类型的好处
  35. // 可以当成普通值来使用, 例如充当函数的参数,或者函数的返回值
  36. // 如充当函数的参数,就是回调函数,
  37. // 如充当返回值,可以创建一个闭包
  38. // 函数做为参数使用, 回调
  39. function f1(callback) {
  40. // 参数 callback 是一个函数
  41. console.log(callback());
  42. }
  43. // 调用f1, 匿名函数当成f1的参数
  44. f1(function () {
  45. return "Hello word";
  46. });
  47. // 函数当成返回值, 闭包
  48. function f2() {
  49. let a = 1;
  50. return function () {
  51. return (a = a + 1);
  52. };
  53. }
  54. // f2()返回值是一个函数
  55. console.log(f2());
  56. const f = f2();
  57. console.log(f());
  58. console.log(f());
  59. // 以下是函数当成对象来用
  60. // 对象有属性和方法, 当然函数也有属性有方法
  61. function func(a, b) {
  62. return a + b;
  63. }
  64. // 查看函数名
  65. console.log(func.name);
  66. // 查看函数需要几个参数
  67. console.log(func.length);
  68. func.att = "函数的属性";
  69. console.log(func.att);