JavaScrpit-7.18(每周一更,持续更新)学习路上记录下的一些常用套路(js基础篇)

 一、接收图片资源

1 if(result.resultid == 0){
2     var a = result && result.name && result.data.imgurl || 'sky.jpg'
3 }

当前端调用一个接口后,返回一个result对象,我们用变量a来接受result里的图片资源,如果,返回的结果中没有result.data.imgurl这个字段,就用sky.jpg作为兜底图片

 二、短路运算的巧妙之处

1 const a1 = 'pingchangxint';
2 //第一个值是true,会接着执行后面的内容
3 a1 && alert('是否出现a1');
4 //会弹出alert框
5 
6 const a2 = undefined;
7 //第一个值是false,不会继续执行后面的内容
8 a2 && alert('是否出现a2');
9 //不会弹出alert框

js中的&&属于短路的与,如果第一个值是false,则不会执行后面的内容。如果第一个值是true,则继续执行第二条语句,并返回第二个值。

同理:||属于短路的或,如果第一个值是true,则不会执行后面的内容。如果第一个值是false,则会继续执行第二条语句,并返回第二个值。

三、比较字符串(大坑)
这是一种特殊情况:当符号两侧都是字符串时,不会转换成数字进行比较,而是比较Unicode编码 比如当你比较"1234""567"这两个字符串时,你会发现"567"更大(因为5比1大)

四、对象的属性值
常见的属性值这里就不说了,主要说一下,对象的属性值可以是一个函数。

1 var obj = new Object();
2     obj.name = function () {
3     console.log('pingchangxin-t');
4 }

也可以是一个对象.

var obj1 = new Object();
obj1.testname = undefined;
var obj2 = new Object();
obj2.name = "pingchangxin-t"
//将整个obj2对象,作为obj1的属性
obj1.testname = obj2
console.log(obj1.testname.name);//打印结果:pingchangxin-t

 五、对象之间传值和传址的区别
这里要说明一点,对象的值是保存在堆内存中,而对象的引用(即变量)是保存在栈内存中的。

1 var obj1 = new Object();
2 obj1.name = "李白";
3 var obj2 = obj1; // 将 obj1 的地址赋值给 obj2。从此, obj1 和 obj2 指向了同一个堆内存空间
4 obj2.name = "韩信";//修改obj2的name属性
5 console.log(obj1.name);//打印结果:韩信

所以如果你打算把引用类型 A 的值赋值给 B,让A和B相互不受影响的话,可以通过 Object.assign() 来复制对象,比如用下面的方法:

1 var obj1 = {name: '韩信'};// 复制对象:把 obj1 赋值给 obj3。两者之间互不影响
2 var obj3 = Object.assign({}, obj1);

六、split()方法
解释:通过指定的分隔符,将一个字符串拆分成一个数组。不会改变原字符串。

1 var str3 = '平常心|pingchangxin|周杰伦';
2 console.log(str3.split()); // ["平常心|pingchangxin|周杰伦"]
3 console.log(str3.split('')); // ["平","常","心","|","p","i","n","g","c","h","a","n","g","x","i","n","|","周","杰","伦"]
4 console.log(str3.split('|')); // ["平常心","pingchangxin","周杰伦"]
5 console.log(str3.split('周')); // ["平常心|pingchangxin|","杰伦"]

七、生成两个整数之间的随机整数,并且要包含这两个整数

1 function getRandom(min, max) {
2     return Math.floor(Math.random() * (max - min + 1)) + min;
3 }
4 const arr = ['周杰伦', '陈奕迅', '隔壁老樊', '林俊杰'];
5 const index = getRandom(0, arr.length - 1); // 生成随机的index
6 console.log(arr[index]); // 随机点名

 

posted @ 2020-07-19 10:08  平-常心  阅读(7)  评论(0)    收藏  举报