大杂烩: 踩坑记录

举报
达拉崩巴斑得贝迪卜多 发表于 2021/12/21 00:59:46 2021/12/21
【摘要】 这个时候, 使用 !getQueryVariable('platform') 判断, 无论怎样都是走else里,因为取反的是 字符串 , 字符串取反肯定是false,只有空字符串取反才是true。 ...

修改成:

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

打印出:

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






对象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


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

合并数据

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}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

if中判断条件

if(
    type == 1 ||
    type == 2 ||
    type == 3 ||
    type == 4 ||
){
   //...
}

// ES6中数组实例方法includes
const condition = [1,2,3,4];

if( condition.includes(type) ){
   //...
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

列表搜索

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

  
 
  • 1
  • 2
  • 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)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

添加对象属性

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

  
 
  • 1
  • 2
  • 3

输入框非空的判断

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

会引起元素位置变化的就会reflow(回流),如,窗口大小改变字体大小改变、以及元素位置改变,都会引起周围的元素改变他们以前的位置
不会引起位置变化的,只是在以前的位置进行改变背景颜色等,只会repaint(重绘)
回流必将引起重绘,重绘不一定会引起回流。
回流比重绘的代价要更高






JS加法精度问题

在这里插入图片描述

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;
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

文章来源: lvsige.blog.csdn.net,作者:祥子的小迷妹,版权归原作者所有,如需转载,请联系作者。

原文链接:lvsige.blog.csdn.net/article/details/120488009

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。