大杂烩: 踩坑记录
【摘要】
这个时候, 使用 !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)