zoukankan      html  css  js  c++  java
  • 本周学习总结

    p5.js

    是一个画图的工具

    angular的基本使用

    angular.json
    
     "scripts": [
                  "./node_modules/p5/lib/p5.min.js",
                  "./node_modules/p5/lib/addons/p5.sound.js"
                ]
    
    import * as p5 from 'p5';
    export class TextThreeComponent implements OnInit, AfterViewInit {
      constructor() {
      }
      ngAfterViewInit() {
    
      }
    
      ngOnInit(): void {
        new p5(p => {
          let x = 100;
          let y = 100;
    
          p.setup = () => {
            p.createCanvas(700, 410);
          };
    
          p.draw = () => {
            p.background(0);
            p.fill(255);
            p.rect(x, y, 50, 50);
          };
        }, document.querySelector('#ccc'));
    
      }
    }
    
    function preload(){
        // 预加载
    }
    function setup(){ // 首函数
        
    }
    function draw(){ // 绘制函数,1s->60次
        
    }
    

    学习网址

    https://overflowjs.com/
    https://zhuanlan.zhihu.com/DepthInAngular
    https://t.codebug.vip/tag-113.htm
    https://discourse.processing.org/
    https://codinglatte.com/angular/
    https://ultimatecourses.com/blog/
    

    DOM和window的区别

    Document 就是整个HTML页面,而且Document 也是window对象的一个属性,可以作为全局变量来访问

    window.onload 在DOM准备就绪并且所有内容加载完成时触发

    document.onload 在DOM准备就绪时(可能在加载图片和其他外部内容之前) 触发

    为什么Math.min()>Math.max()

    简单理解如果没有参数,有个初始化的值

    Math.max() 从搜索值 -Infinity开始

    Math.min() 从搜索值 Infinity 开始

    如果有一个参数不能转换为数字,结果为NaN

    放一段v8源码的片段

    function MathMax(arg1, arg2) {  // length == 2
      var length = %_ArgumentsLength();
      if (length == 2) {
        arg1 = TO_NUMBER(arg1);
        arg2 = TO_NUMBER(arg2);
        if (arg2 > arg1) return arg2;
        if (arg1 > arg2) return arg1;
        if (arg1 == arg2) {
          // Make sure -0 is considered less than +0.
          return (arg1 === 0 && %_IsMinusZero(arg1)) ? arg2 : arg1;
        }
        // All comparisons failed, one of the arguments must be NaN.
        return NaN;
      }
      var r = -INFINITY;
      for (var i = 0; i < length; i++) {
        var n = %_Arguments(i);
        n = TO_NUMBER(n);
        // Make sure +0 is considered greater than -0.
        if (NUMBER_IS_NAN(n) || n > r || (r === 0 && n === 0 && %_IsMinusZero(r))) {
          r = n;
        }
      }
      return r;
    }
    

    我们可以知道Math.max() 是for循环实现

    关于弹出框滚动和大盒子滚动的问题

    .modal-container {  默认小盒子不滚
      pointer-events: none; 
      opacity: 0;
    }
    .modal-container.is-open { //当鼠标点击到小盒子,就打开大盒子的滚动
      pointer-events: all; 
      opacity: 1;
    }
    

    MDN中的fill

    console.log([].fill.call({length: 3}, 10))
    // { '0': 10, '1': 10, '2': 10, length: 3 }
    

    下载

      let a = document.createElement('a');
        a.href = xxx
        a.download = 名称
        a.style.display="none";
        a.click();
    

    console.table

    有对象数组时,console.table()

    解构

    let obj = {name: 'xxx', age: 13};
    const func = ({name}) => {
      return '我叫' + name;
    };
    console.log(func(obj));
    // 我叫xxx
    

    查看github不错的项目

    https://awesomeopensource.com/projects/javascript
    

    单引号和双引号的区别

    结论: 除了转移时,其他两种都相同

    ''
    ""
    ``
    但是不要忘记啦 JSON的时候只能用双引号
    

    复习下数组的方法

    class Obj {
        constructor(obj) {
            this.obj = new Object(obj);
        }
    
        indexOf(searchElement, fromIndex = 0) {
            for (let i = fromIndex; i < this.obj.length; i++) {
                if (this.obj[i] === searchElement) return i;
            }
            return -1;
        }
    
        lastIndexOf(searchElement, fromIndex = this.obj.length - 1) {
            for (let i = fromIndex; i >= 0; i--) {
                if (this.obj[i] === searchElement) return i;
            }
            return -1;
        }
    
        includes(searchElement, fromIndex = 0) {
            let i = fromIndex;
            while (i < this.obj.length) {
                if (this.obj[i++] === searchElement) return true;
            }
            return false;
        }
    
        fill(value, start = 0, end = this.obj.length - 1) {
            let i = start-1;
            while (++i <= end){
              this.obj[i++] = value;
            }
            return this.obj;
        }
    
        join(separator = ",") {
            let str = "";
            let i = 0;
            for (const value of this.obj) {
                ++i;
                str += value + (i < this.obj.length ? separator : "");
            }
            return str;
        }
    
        findIndex(callback) {
            for (const key in this.obj) {
                if (callback(this.obj[key], key)) return key;
            }
            return null;
        }
    
        find(callback) {
            for (const key in this.obj) {
                if (callback(this.obj[key], key)) return this.obj[key];
            }
            return undefined;
        }
    
        filter(callback) {
            const obj = {};
            for (const key in this.obj) {
                if (callback(this.obj[key], key)) obj[key] = this.obj[key];
            }
            return obj;
        }
    
        forEach(callback) {
            for (const key in this.obj) {
                this.obj[key] = callback(this.obj[key], key);
            }
            return this.obj;
        }
    
        map(callback) {
            const obj = {};
            for (const key in this.obj) {
                obj[key] = callback(this.obj[key], key);
            }
            return obj;
        }
    
        some(callback) {
            for (const key in this.obj) {
                if (callback(this.obj[key], key)) return true;
            }
            return false;
        }
    
        every(callback) {
            for (const key in this.obj) {
                if (callback(this.obj[key], key)) continue;
                return false;
            }
            return true;
        }
    
        reduce(callback, initialValue) {
            let accumulator = initialValue;
            for (const key in this.obj) {
                accumulator = callback(accumulator, this.obj[key], key);
            }
            return accumulator;
        }
    }
    

    一种新的反转方式

    原型
    const _reverse = str => {
      let result = "";
      for (let item of str) {
        result=item+result
      }
      return result
    }
    -----
        
    console.log('abc'.split('').reduce((acc, val) => val + acc));
    // cba
    

    不错的算法

    https://medium.com/siliconwat/algorithms-in-javascript-b0bed68f4038

  • 相关阅读:
    第十三次ScrumMeeting会议
    第十二次ScrumMeeting博客
    第十一次ScrumMeeting会议
    Alpha阶段事后分析
    Alpha阶段展示
    Alpha阶段发布说明
    团队项目-第十次scrum 会议
    团队项目-第五次Scrum 会议
    # 团队项目测评博客
    # Beta冲刺前准备
  • 原文地址:https://www.cnblogs.com/fangdongdemao/p/12852342.html
Copyright © 2011-2022 走看看