函数类型

  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);

更多相关文章

  1. Android(安卓)异步更新UI----AsyncTask
  2. android opencv 前置摄像头
  3. Android应用程序请求SurfaceFlinger服务渲染Surface的过程分析
  4. Android(安卓)自定义Html标签
  5. 浅谈android hook技术
  6. Android原生代码调用H5 Web网页中的Javascript函数方法
  7. Android属性动画AnimatorSet源码简单分析
  8. Android系统启动过程
  9. 详解MySQL中concat函数的用法(连接字符串)

随机推荐

  1. redis之持久化
  2. 说说java异常Exception
  3. redis之通信协议
  4. Java线程之概念与原理
  5. Java 死锁范例以及如何分析死锁
  6. redis之复制
  7. Java线程之创建与启动
  8. 算法:有向无环图的最短路径
  9. 配置DNS服务和编译安装MariaDB
  10. 10 个有关 String 的面试问题