函数

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

更多相关文章

  1. Android(安卓)Activity设置全屏
  2. 【笔记】android捕获触摸事件
  3. 函数参数,返回值与模板字面量,模板函数
  4. 函数的参数和返回值问题以及模板字面量和模板函数
  5. 实例演示函数参数与返回值、演示模板字面量与模板函数
  6. 1. 实例演示函数参数与返回值 2. 实例演示模板字面量与模板函数
  7. 常用函数类型和数据类型
  8. PHP的命令行扩展Readline相关函数的使用
  9. PHP执行linux命令6个函数代码实例

随机推荐

  1. java之concurrent包中的Atomic类
  2. SpringBoot项目通用功能及框架知识点介绍
  3. 深入理解JVM—JVM内存模型
  4. mymes部署虚拟机安装以及使用Linux,看一
  5. 学习Linux的第7天
  6. SpringBoot实现POI报表操作
  7. 深入浅出Java并发包—CountDownLauch原理
  8. SpringBoot结合POI百万级数据报表操作
  9. 把GOF(俗称四人帮)当作圣经
  10. Java集合LinkedList源码剖析