#yyds干货盘点 前端小知识点扫盲笔记记录5-2

简介: #yyds干货盘点 前端小知识点扫盲笔记记录5

代理模式

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>代理模式</title>
</head>
<body>
  <script>
    // 先申明一个奶茶妹对象
    var TeaAndMilkGirl = function (name) {
      this.name = name;
    };
    // 这是京东ceo先生
    var Ceo = function (girl) {
      this.girl = girl;
      // 送结婚礼物 给奶茶妹
      this.sendMarriageRing = function (ring) {
        console.log("Hi " + this.girl.name + ", ceo送你一个礼物:" + ring);
      }
    };
    // 京东ceo的经纪人是代理,来代替送
    var ProxyObj = function (girl) {
      this.girl = girl;
      // 经纪人代理送礼物给奶茶妹
      this.sendGift = function (gift) {
        // 代理模式负责本体对象实例化
        (new Ceo(this.girl)).sendMarriageRing(gift);
      }
    };
    // 初始化
    var proxy = new ProxyObj(new TeaAndMilkGirl("奶茶妹"));
    proxy.sendGift("结婚戒"); // Hi 奶茶妹, ceo送你一个礼物:结婚戒
  </script>
</body>
</html>




使用代理模式预加载图片

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>使用代理模式加载图片</title>
</head>
<body>
  <script>
    var myImage = (function () {
      var imgNode = document.createElement("img");
      document.body.appendChild(imgNode);
      return {
        setSrc: function (src) {
          imgNode.src = src;
        }
      }
    })();
    // 代理模式
    var ProxyImage = (function () {
      var img = new Image();
      img.onload = function () {
        myImage.setSrc(this.src);
      };
      return {
        setSrc: function (src) {
          myImage.setSrc("http://img.lanrentuku.com/img/allimg/1212/5-121204193Q9-50.gif");
          img.src = src;
        }
      }
    })();
    // 调用方式
    ProxyImage.setSrc("https://img.alicdn.com/tps/i4/TB1b_neLXXXXXcoXFXXc8PZ9XXX-130-200.png");
  </script>
</body>
</html>




冒泡排序算法

<!DOCTYPE html>
<html lang="en">
  <head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  </head>
  <body>
  <script>
    function bubbleSort(arr) {
    for (var i = 0; i < arr.length; i++) {
      for (var j = arr.length - 1; j > i; j--) {
      if (arr[j] < arr[j - 1]) {
        var temp = arr[j]
        arr[j] = arr[j - 1]
        arr[j - 1] = temp
      }
      }
    }
    return arr
    }
    var arr = [32, 55, 66, 77, 18, 20]
    console.log(bubbleSort(arr))
            //[18, 20, 32, 55, 66, 77]
  </script>
  </body>
</html>




删除数组中的undefine和null

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>删除数组中的null和undefined</title>
</head>
<body>
  <script>
    function clearNullArr(arr){
      for(var i=0; i<arr.length; i++){
        if(!arr[i]||arr[i]==''||arr[i]===undefined){
          arr.splice(i, 1);
          arr.length--;
          i--
        }
      }
      return arr
    }
    var geyao=["","2","3","5",undefined,null,undefined]
    console.log(clearNullArr(geyao))//["2","3","5"]
  </script>
</body>
</html>




删除数组的制定下标元素

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>删除数组的指定下标元素</title>
</head>
<body>
  <script>
  Array.prototype.del=function(index){
    if(isNaN(index)||index>=this.length){
      return false;
    }
    for(var i=0,n=0;i<this.length;i++){
      if(this[i]!=this[index]){
        this[n++]=this[i];
      }
    }
    this.length-=1;
    return this
  };
  var geyao=["1","2","3"]
  console.log(geyao.del(1))//["1","3"]
  </script>
</body>
</html>


前端this指向问题解决方案apply

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>前端this指向问题普通函数apply</title>
</head>
<body>
  <script>
    //口诀 谁调用就会指向谁 这边是普通函数 直接报错this.fang is not a function
    var name="geyao"
      var fangfang = {
        name : "fangfang",
        fang: function () {
            console.log(this.name)
        },
        fun: function () {
            setTimeout( function () {
                this.fang()
            }.apply(this,fangfang),100);
        }
    };
    fangfang.fun()//fang
  </script>
</body>
</html>



相关文章
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
1333 14
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
603 0
|
Web App开发 前端开发 Linux
「offer来了」浅谈前端面试中开发环境常考知识点
该文章归纳了前端开发环境中常见的面试知识点,特别是围绕Git的使用进行了详细介绍,包括Git的基本概念、常用命令以及在团队协作中的最佳实践,同时还涉及了Chrome调试工具和Linux命令行的基础操作。
「offer来了」浅谈前端面试中开发环境常考知识点
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
645 6
|
机器学习/深度学习 弹性计算 自然语言处理
前端大模型应用笔记(二):最新llama3.2小参数版本1B的古董机测试 - 支持128K上下文,表现优异,和移动端更配
llama3.1支持128K上下文,6万字+输入,适用于多种场景。模型能力超出预期,但处理中文时需加中英翻译。测试显示,其英文支持较好,中文则需改进。llama3.2 1B参数量小,适合移动端和资源受限环境,可在阿里云2vCPU和4G ECS上运行。
947 1
|
前端开发 算法 测试技术
前端大模型应用笔记(五):大模型基础能力大比拼-计数篇-通义千文 vs 文心一言 vs 智谱 vs 讯飞vsGPT
本文对比测试了通义千文、文心一言、智谱和讯飞等多个国产大模型在处理基础计数问题上的表现,特别是通过链式推理(COT)提示的效果。结果显示,GPTo1-mini、文心一言3.5和讯飞4.0Ultra在首轮测试中表现优秀,而其他模型在COT提示后也能显著提升正确率,唯有讯飞4.0-Lite表现不佳。测试强调了COT在提升模型逻辑推理能力中的重要性,并指出免费版本中智谱GLM较为可靠。
859 0
前端大模型应用笔记(五):大模型基础能力大比拼-计数篇-通义千文 vs 文心一言 vs 智谱 vs 讯飞vsGPT
|
前端开发 JavaScript 数据库
如何实现前后端分离-----前端笔记
如何实现前后端分离-----前端笔记
|
JSON 前端开发 JavaScript
前端Ajax、Axios和Fetch的用法和区别笔记
前端Ajax、Axios和Fetch的用法和区别笔记
475 2

热门文章

最新文章