PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

博客列表 > 函数 和类型

函数 和类型

ianren
ianren 原创
2022年01月06日 14:31:29 422浏览

函数类型

命名函数

  • function fname(...){...}
  1. function user(a, b) {
  2. return a + b;
  3. }
  4. console.log(user(10, 20));
  5. // 1. `user` 函数的名字
  6. // 2. ` (a, b)` 函数的参数
  7. // 3. `return a + b;` 函数的返回值
  8. // 4. `user(10, 20)` 给函数 user 传值(10,20)

匿名函数

  • 匿名函数: 没有名字的函数叫匿名函数

1.函数表达式 const = function (...){...}

  • 把函数保存到变量(常量)中 -任何一个可以计算出确定的’值’的过程

  • ‘函数声明’,变成了 ‘变量声明’, 只不过,变量的值,是一个函数声明

  1. const getName = function (a) {
  2. return "Hello " + a;
  3. };
  4. console.log(getName("Ianren"));
  5. // 1. `getName` 常量的名字
  6. // 2. ` (a)` 函数的参数
  7. // 3. `"Hello " + a;` 函数的返回值
  8. // 4. `getName("Ianren")` 给常量`getName`的函数 传值("Ianren")
  9. // `let` 定义变量 `const` 定义常量

2.立即执行函数(IIFE)

  • 立即执行函数(IIFE) :执行方式 立即执行(声明 + 执行)2 合一 一起执行
  • 用完就不用了 一次性,不会给全局环境带了任何污染,用来创建临时作用域
  • console.log( (function(..){ ... })(...));
  1. console.log(
  2. (function (username) {
  3. return "Hello" + username;
  4. })("Ianren")
  5. );
  6. // 1. 直接把函数写在 `console.log()` 也就是直接调用函数
  7. // 2.`("Ianren")` 是为 `username` 传的值
  8. // ! 也可以写为
  9. (function (username) {
  10. console.log("Hello " + username);
  11. })("Ianren");

3.箭头函数

  • 只有一个参数,可以不写括号(...)
  • 只有一条执行语句,可以不写{}return 也可不写
  • this 与上下文绑定 ,是固定的,所以不能用作”构造函数”来创建对象
  1. let f1 = function (a, b) {
  2. return a + b;
  3. };
  4. console.log(f1(10, 30));
  5. // 使用箭头函数简化
  6. f1 = (a, b) => {
  7. return a + b;
  8. };
  9. console.log(f1(10, 30));
  10. // 1. 去掉 function
  11. // 2. 在参数和{}之间加 =>
  12. f1 = (a, b) => {
  13. return a + b;
  14. };
  15. console.log(f1(10, 30));
  16. // 只有一条 `return `的情况下 `{}` 和 `return` 不写
  17. // 只有一个参数 `()` 也可以不写
  18. f1 = (a, b) => a + b;
  19. console.log(f1(10, 30));

数据类型

原始类型 简单类型

  • 不可再分,是构成其他复合类型的基本单元
  • 一个变量存一个值
  1. 数字类型 number 123
  2. 字符串类型 string “你好”
  3. 布尔类型 boolean true
  4. undefined undefined 没有值
  5. null object 空

引用类型 复合类型

  • 是一个典型的:多值类型
    const a = [1, "你好", true];

    []包含多个数值,里面的值 用 , 分开

  • 引用类型,都是对象,默认返回值 object. 函数(function)除外

1.array 数组

  • 声明
    const a = [1, "你好" true];

  • 调用

  1. const arr = [1, "手机", 5000];
  2. console.log(arr);
  3. console.log(arr[0]);
  4. console.log(arr[1]);
  5. console.log(arr[2]);
  6. // 数组的索引是从0开始递增的正整数 0, 1, 2, 3,....
  7. // 分别调用值结果为
  8. // console.log(arr); [1, "手机", 5000]
  9. // console.log(arr[0]); 1
  10. // console.log(arr[1]); 手机
  11. // console.log(arr[2]); 5000
  12. // 判断数组类型用`typeof`;
  13. console.log(typeof arr);
  14. console.log(typeof arr[1]);

2.object 对象

  • 对象里面可以设置 属性,可以根据属性来调用其属性的值 name为属性 手机 为值
  1. const obj = { num: 1, name: "手机", price: 5000 };
  2. console.log(obj);
  3. console.log(obj["num"]);
  4. console.log(obj["name"]);
  5. console.log(obj["price"]);
  6. // 分别调用值结果为
  7. // console.log(obj); [1, "手机", 5000]
  8. // console.log(obj["num"]); 1
  9. // console.log(obj["name"]); 手机
  10. // console.log(obj["price"]); 5000
  11. // 简化写法
  12. console.log(obj);
  13. console.log(obj.num);
  14. console.log(obj.name);
  15. console.log(obj.price);
  16. //对象中出现非法标识符 必须用 `[]`
  17. obj = { "my email": "admin@php.com" };
  18. console.log(obj["my email"]);
  • 对象里面可以设置 属性,可以根据属性来调用其属性的值 name为属性 手机 为值
  • 属性类似用变量

2-1.对象里面包含函数

  • 属性用 total 设置
  1. let obj = {
  2. num: 1,
  3. name: "手机",
  4. price: 5000,
  5. total: function () {
  6. let str = obj.name + " 总计: " + obj.price * obj.num + "元";
  7. return str;
  8. },
  9. };
  10. console.log(obj.total());
  11. // 简化可以
  12. let obj = {
  13. num: 1,
  14. name: "手机",
  15. price: 5000,
  16. total: function () {
  17. let str = `${obj.name} 总计: ${obj.price * obj.num} 元`;
  18. return str;
  19. },
  20. };
  21. console.log(obj.total());
  22. /// 这里要用反引号 "``" (数字1前面的)
  23. ///反引号声明的模板字符串,可以插入变量/表达式.这叫"插值"

2-2.this

  • 在对象内部,使用当前对象的一个引用,这样才独立于外部对象
  • this :始终与当前对象绑定(执行环境 / 执行上下文)
  1. let obj = {
  2. num: 4,
  3. name: "手机",
  4. price: 5000,
  5. total: function () {
  6. let str = this.name + " 总计: " + this.price * this.num + "元";
  7. return str;
  8. },
  9. };
  10. console.log(obj.total());
  • let str = this.name + " 总计: " + this.price * this.num + "元";
  • 这里面 把obj 换成了 this,以后可以直接单独改变量名称.

3.函数 function

  • 函数即使 函数 也是 对象
  1. 函数当参数使用,回调
  1. function f1(callback) {
  2. console.log(callback());
  3. }
  4. f1(function () {
  5. return "hello";
  6. });
  1. 函数当返回值使用 闭包
  1. function f2() {
  2. let a = 1;
  3. return function () {
  4. return a++;
  5. };
  6. }
  7. console.log(f2());
  8. const f = f2();
  9. console.log(f);
  10. console.log(f());
  11. console.log(f());
  12. console.log(f());
  13. console.log(f());
  14. console.log(f());
  15. console.log(f());
  1. 函数当成对象方法
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议