博客列表 >常用函数类型与数据类型

常用函数类型与数据类型

天宁
天宁原创
2022年04月04日 22:22:35471浏览

函数

  1. 如果函数需要多次调用, 用命名, 函数表达式, 都可以
  2. 如果代码要求,必须遵循”先声明, 再调用”的规则, 那就必须用”函数表达式”
  3. 如果只有完成一些特定的,一次性的工作, 不想留下任何痕迹, 用”IIFE”, 模块
  4. 如果调用函数时,需要一个函数充当参数,例如:回调, 就可以使用箭头函数来简化 匿名函数的 声明
命名函数
  1. function getName(username) {
  2. return 'Hello ' + username;
  3. }
  4. console.log(getName('猪老师'));
匿名函数
  • 声明方式1,将匿名函数当成值赋给一个变量

    1. let getUserName = function(username) {
    2. return 'Hello ' + username;
    3. };
    4. console.log(getUserName('王老师'));
  • 声明方式2,将声明与调用二合一:立即调用函数,IIFE(简写)

    1. console.log(
    2. (function(username) {
    3. return 'Hello ' + username;
    4. })('张老师')
    5. //表达式,是用一对括号包住的
    6. );
箭头函数,用来简化匿名函数的声明
  • 转化方法,去掉 function,在参数列表与大括号之间使用 ‘=>’

    1. //转换前
    2. let add = function(a, b) {
    3. console.log(a + b);
    4. };
    5. //转换后
    6. add = (a, b) => {
    7. console.log(a + b);
    8. };
  • 如果只有一个参数,可以不写参数列表的括号

    1. add = a => {
    2. console.log(a + 88);
    3. };
  • 如果没有参数,括号必须加上

    1. add = () => {
    2. console.log(34 + 88);
    3. };
  • 如果函数只有一条语句,大括号都可以不用.

    1. add = () => console.log(34 + 88);
    2. add();

数据类型

原始类型

包含:number , string , boolen , undefined , null

引用类型,array , object , function

一个变量保存的是一个集合,并非单值,访问时不能直接访问,必须通过这个变量的引用来访问

  • 数组:array

    1. //访问数据元素,必须通过数组的引用(数组名称arr)来访问(arr是一个访问入口)
    2. //数组成员的索引是从0开始的
    3. const arr = [1, 'admin', [1, 2, 3], true];
    4. console.log(arr);
    5. console.log(arr[1]);
    6. console.log(arr[2][1]);
    7. //数组类型判断不能用typeof,得用Array.isArray(数组)
    8. console.log(Array.isArray(arr));
  • 对象:object

    1. let obj = {
    2. id: 1,
    3. username: 'jack',
    4. num: [1, 2, 3],
    5. isOk: true,
    6. 'my email': '498668472@qq.com',
    7. // 将一个函数转为对象的方法,封装到对象中
    8. getUser: function () {
    9. // 在对象中,使用变量this来引用对象自身
    10. return 'id =' + this.id + ', username =' + this.username;
    11. },
    12. };
    13. //用数组的方式访问成员也可以
    14. console.log(obj['username']);
    15. //为了简化,并与数组区别,对象有自己的成员访问符:.
    16. console.log(obj.username);
    17. //如果对象中有非法键名,我们只能使用数组的方式访问
    18. console.log(obj['my email']);
    19. //对象是可以将数据与函数封装到一起,做为一个独立的编程单元
    20. //就是上面的getUser的方式
  • 函数:function

    1. //函数是对象,也是一个值,可以当成参数传递,也可以当成返回值
    2. function f1(callback) {
    3. console.log(typeof callback);
    4. console.log(callback());
    5. }
    6. f1(function() {
    7. return 'Hello 猪老师';
    8. });
    9. // 函数当返回值: 闭包
    10. function f2() {
    11. // a是 f2的私有变量
    12. let a = 1;
    13. return function () {
    14. // return (a += 1);
    15. // 而此时,子函数中的a并不是自己的,是父函数的
    16. return a++;
    17. };
    18. }
    19. console.log(f2());
    20. //直接调用就无法实习闭包效果,需要声明一个变量来调用
    21. const f = f2();
    22. console.log(f());
    23. console.log(f());
    24. console.log(f());
    25. // 函数就是对象,对象就可以添加属性和方法
    26. let f3 = function () {};
    27. f3.myemail = 'admin@php.cn';
    28. console.log(f3.myemail);
    29. f3.getEmail = function () {
    30. console.log(this.myemail);
    31. };
    32. f3.getEmail();
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议