博客列表 >细说函数与数据类型

细说函数与数据类型

NY。
NY。原创
2022年01月02日 18:31:26979浏览

细说函数与数据类型

函数类型

1.命名函数:命名采用动词+名词

  1. // 细说函数
  2. function getName(username) {
  3. return "hello " + username;
  4. }
  5. console.log(getName("小夫"));

2.匿名函数
执行方式有两种:立即执行和函数表达式(保存到变量中)

立即执行函数(IIFE)将声明和执行二合一,阅后即焚不会给全局环境造成任何污染,用来创建临时作用域。
立即执行:

  1. console.log(
  2. (function (username) {
  3. return "good morning " + username;
  4. })("小夫")
  5. );

函数表达式:

  1. const getName = function (username) {
  2. return "hello " + username;
  3. };

函数表达式的简化方案:箭头函数

去掉 function,在(…)与{…}之间使用=>进行连接

  1. const getUserName=(username)=>{
  2. return 'hello '+username
  3. }

如果函数中只有一个参数,()可以省略,如下

  1. const getFirstUsername=username=>{
  2. return 'hello '+username
  3. }

如果只有一条语句,可以不写大括号,因为只有一条语句,默认就是 return,return 也可以省略。

  1. const GET_NAME = i => i * 10;

使用场景: 1.如果函数需要多次调用,用命名,函数表达式都可以 2.如果代码要求,必须遵循“先声明,再调用的原则”,那就必须用“函数表达式” 3.如果只有完成特定的,一次性的工作,不想留下任何痕迹用 IIFE 立即执行函数 4.如果调用函数时需要一个函数充当参数,例如回调,就可以使用箭头函数进行简化匿名函数的声明

数据类型

  • 原始类型
    不可再分,是构成其他复合类型的基本单元,简单类型,基本类型:一个变量存一个值
    1.number 类型
    例如;123,456
    2.string 字符串类型
    例如:hello word,你好世界 3.布尔类型
    true,false
    4.undefined 类型
    undefined
    5.object 类型
    null
    动态语言,变量的类型,由他的值的类型来决定。
  • 引用类型
    定义:类似其他语言中的复合类型,集合类型。引用类型的数据由一个或多个相同或不同的原始类型构造成的。是一个典型的多值类型
    引用类型默认返回的都是对象,object,函数除外(返回的 function)

数组:

  1. const arr = ["name", 4, 58394];

数组的索引是从 0 开始递增的整数,0,1,2,3……
这样来判断一个数据是不是数组console.log(Array.isArray(array));

对象:更像是一个语义化的数组
const shopping = { phone: "智能手机", price: "998" };
可以这么来访问这个对象:console.log(shopping['phone']);
因为对象的属性名都是合法的标识符,可以使用’.’点来访问例如:
console.log(shopping.phone,shopping.price);效果和上方的效果一样。
但是如果对象的属性中出现了非法标识符,我们就必须采用上一种方法了,例如:
console.log(shopping["my money"]);
对象最吸引人的不是数组的语义化封装,而是对数据操作的封装,叫做方法(语法与函数一样的)

  1. const shopping = {
  2. phone: "智能手机",
  3. price: "998",
  4. myMoney: "10000",
  5. change: function () {
  6. let change = `买完${this.phone}还剩下${this.myMoney - this.price}元人民币`;
  7. return change;
  8. },
  9. };
  10. console.log(shopping.change());

实际使用中大多数是吧数组和对象组合起来用的
像这样:

  1. const buy = [
  2. { name: "good1", num: 1, price: 1000 },
  3. { name: "good2", num: 2, price: 1000 },
  4. { name: "good3", num: 3, price: 1000 },
  5. ];

函数(函数既是函数也是对象)

  • 函数是数据类型的好处

    1.可以当成普通值来使用,例如充当函数的参数,或者函数的返回值
    2.当参数就是回调函数,当返回值可以创建一个闭包
    3.js 中有很多高阶应用,都依赖这两个功能,这也是“高阶函数”的基本特征
    4.函数是 js 的一等公民,就是通过这个体现的。

应用场景 1:函数作为参数使用,回调

  1. // 回调
  2. function f1(huidiao) {
  3. console.log(huidiao());
  4. }
  5. f1(function(){return'call back sucess'})

应用场景 2:函数当成返回值,闭包

  1. function f2() {
  2. let i = 1;
  3. return function () {
  4. return i++;
  5. };
  6. }
  7. const f = f2();
  8. console.log(f());
  9. console.log(f());
  10. console.log(f());
  11. console.log(f());
  12. console.log(f());
  13. console.log(f());

函数也可以当成对象来用,对象有属性和方法,函数也有属性和方法。
函数当成对象有啥用?
用处太大了,整个 js 语言体系都靠它撑着
就算是你没学过编程·,至少听说过面向对象编程,对象可以被继承,实现代码复用。
而 js 就是基于原型,实现的继承,而原型,就是在函数上创建一个普通对象而已
class,构造函数他们都是基于函数是对象这个前提的

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议