大杂烩: 踩坑记录

简介: 大杂烩: 踩坑记录

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;
}
相关文章
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
33256 202
如何保证分布式文件系统的数据一致性
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36824 22
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24905 16
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36824 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
|
存储 算法 Java
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务
随着互联网的快速发展,越来越多的应用程序需要处理大量的请求。如果没有限制,这些请求可能会导致应用程序崩溃或变得不可用。因此,限流器是一种非常重要的技术,可以帮助应用程序控制请求的数量和速率,以保持稳定和可靠的运行。
29950 52

热门文章

最新文章