大杂烩: 踩坑记录

简介: 大杂烩: 踩坑记录

image.pngimage.png

                                              这个时候, 使用 !getQueryVariable('platform') 判断, 无论怎样都是走else里,因为取反的是 字符串 , 字符串取反肯定是false,只有空字符串取反才是true。

修改成:


!JSON.parse(getQueryVariable('platform')) 或者 !!getQueryVariable('platform')

image.png

打印出:


image.png

所以以后再判断的时候,可以用typeOf去看看是什么类型

image.png

对象obj中取值

const obj = {
    a:1,
    b:2,
    c:3,
    d:4,
    e:5,
}
//用ES6的解构赋值来取值
const {a,b,c,d,e} = obj;
const f = a + d; 
const {a:a1} = obj;
console.log(a1);// 1

合并数据

const a = [1,2,3];
const b = [1,5,6];
const c = a.concat(b);//[1,2,3,1,5,6]
const obj1 = {
  a:1,
}
const obj2 = {
  b:1,
}
const obj = Object.assign({}, obj1, obj2);//{a:1,b:1}

if中判断条件

if(
    type == 1 ||
    type == 2 ||
    type == 3 ||
    type == 4 ||
){
   //...
}
// ES6中数组实例方法includes
const condition = [1,2,3,4];
if( condition.includes(type) ){
   //...
}

列表搜索

// find方法中找到符合条件的项,就不会继续遍历数组 性能好
const a = [1,2,3,4,5];
const result = a.find( item => item === 3)

获取对象属性值

可选链操作符

const name = obj && obj.name;
// 改进  可选链操作符  ?.
const name = obj?.name;
obj ={
    username:"花花",
    data:{
        age:18,
        height:170,
        weight:90,
        unit:{
            weight:"kg",
            height:"cm",
            data:{
                a:"最深层级参数1",
                b:"最深层级参数2"
            }
        }
    }
}
//可选链
console.log("可选链:"+ obj.data?.unit?.data?.a)

添加对象属性

let obj = {};
let index = 1;
obj[`topic${index}`] = '话题内容';

输入框非空的判断

if(value !== null && value !== undefined && value !== ''){
    //...
}
// ES6中新出的空值合并运算符 
// 空值合并运算符 ?? 当左侧操作数为 null 或 undefined 时,其返回右侧的操作数。否则返回左侧的操作数。
if(value ?? '' !== ''){
  //...
}  

会引起元素位置变化的就会reflow(回流),如,窗口大小改变、字体大小改变、以及元素位置改变,都会引起周围的元素改变他们以前的位置;

不会引起位置变化的,只是在以前的位置进行改变背景颜色等,只会repaint(重绘)

回流必将引起重绘,重绘不一定会引起回流。

回流比重绘的代价要更高

image.png

JS加法精度问题

image.png

function add_sum(arg1, arg2) {
    var r1, r2, m;
    try {
        r1 = arg1.toString().split(".")[1].length;
    } catch (e) {
        r1 = 0;
    }
    try {
        r2 = arg2.toString().split(".")[1].length;
    } catch (e) {
        r2 = 0;
    }
    m = Math.pow(10, Math.max(r1, r2));
    return (arg1 * m + arg2 * m) / m;
}
相关文章
|
4月前
|
存储 数据采集 算法
《花100块做个摸鱼小网站! 》第三篇—热搜表结构设计和热搜数据存储
本文档详细介绍了如何搭建并实现一个简易的热搜数据抓取及存储系统。首先,通过基础链接导航引导读者了解项目的组成部分,包括服务器配置、示例网站和源码库。接着,逐步讲解了数据库表结构设计、利用MyBatis插件自动生成Java对象的过程,以及热搜数据的存储逻辑。在数据存储部分,特别关注了唯一ID生成算法,确保数据不会重复。此外,还提供了爬取抖音和百度热搜的具体实现代码,包括使用OkHttp进行网络请求、利用Jsoup解析HTML文档等技术细节。通过本文档的学习,读者不仅能掌握热搜数据抓取与存储的基本方法,还能了解到一些实用的开发技巧和工具。
62 1
《花100块做个摸鱼小网站! 》第三篇—热搜表结构设计和热搜数据存储
|
4月前
|
数据采集 前端开发 JavaScript
《花100块做个摸鱼小网站! 》第四篇—前端应用搭建和完成第一个热搜组件
本文档详细介绍了从零开始搭建一个包含前后端交互的热搜展示项目的全过程。通过本教程,读者不仅能学习到完整的项目开发流程,还能掌握爬虫技术和前后端交互的具体实践。适合有一定编程基础并对项目实战感兴趣的开发者参考。
93 1
|
6月前
|
算法 Java API
记录我第一次在Android开发图像处理算法的经历
记录我第一次在Android开发图像处理算法的经历
40 1
|
5月前
|
安全 JavaScript Java
若依修改,若依bug整理集合资料在那?作者亲自解决bug
若依修改,若依bug整理集合资料在那?作者亲自解决bug
|
6月前
|
JSON 小程序 JavaScript
技术心得记录:小爱童鞋@你,一起来撸个小程序吧
技术心得记录:小爱童鞋@你,一起来撸个小程序吧
53 0
|
数据采集 JavaScript API
猿人学对抗赛踩坑记录
猿人学对抗赛踩坑记录
159 0
猿人学对抗赛踩坑记录
|
传感器
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~
网络工程项目报价单应该怎么写?记住这6个步骤准没错!
网络工程项目报价单应该怎么写?记住这6个步骤准没错!
321 0
|
存储 供应链 安全
Java开发的五条安全小贴士,助你的项目更安全
Java开发的五条安全小贴士,助你的项目更安全
|
存储 SQL XML
搜索引擎项目开发过程以及重难点整理(一)
搜索引擎项目开发过程以及重难点整理(一)
561 0
搜索引擎项目开发过程以及重难点整理(一)