标签:this enum 解构 webview strong 默认值 json 相互 family
一 let 和 var 作用域
1 普通用法
for (var i = 0; i < 5; i++) {
console.log(i);
}
for (let i = 0; i < 5; i++) {
console.log(i);
}
结果都是: 0,1,2,3,4
2 箭头函数(()=>{})里面使用
1 var
var a=6;
for(var a=0;a<4;a++){//var是全局的,同名的变量后面的会覆盖前面的。
console.log(a); //直接写外层附近定义的变量即可,不要用this. 由于var是全局的,箭头函数里面引用都是同一个a,输出的结果都是一样的 4 。
console.log(this.a);// this. 表示windows的对象, windows里面根本没有a. , 所以 这里输出 undefined.
},0);
}
console.log(a); // 箭头函数外使用变量也是 直接使用即可,不用this. 由于var同名的变量后面的会覆盖前面的,这里输出 4 。
console.log(this.a); // this. 表示windows的对象, windows里面根本没有a. , 所以 这里输出 undefined. ; 只有顶部data:{}下定义的字段,用的时候可以this.data.字段。
2 let
let b=6;
for(let b=0;b<4;b++){//let作用域是当前块级, 同名定义的不会相互影响覆盖
console.log(b); //正常的输出0,1,2,3
console.log(b); //直接写外层附近定义的变量即可,不要用this. 由于let是当前块的,箭头函数里面引用都是不同的b ,输出结果会是 0,1,2,3
console.log(this.b); //this. 表示windows的对象, windows里面根本没有b. , 所以 这里输出 undefined.
},0);
}
console.log(b);//箭头函数外使用变量也是 直接使用即可,不用this. 由于是let定义,所以不会覆盖。 输出最外层的6
console.log(this.b);// this. 表示windows的对象, windows里面根本没有b. , 所以 这里输出 undefined. ; 只有顶部data:{}下定义的字段,用的时候可以this.data.字段。
总结处理{}的方法:???????
1 Object.keys(); object.values();
/** 通用处理 默认值 为0
item--表示传入的某条记录对象{}
MapKey--表示要处理 默认值 为0 的字段集合
MapKeyDefault---默认处理成0
一般用于处理 一层层级的数据记录{}; 更深的层级需要自己单独提出来处理,创建新字段(平级)
*/
dealItemVal(item = {}, MapKey = [], MapKeyDefault = 0) {
let obj = {}
//转成数组 --字段名称和值 -------object方法在andorid里面无法执行!!!
let ks = Object.keys(item),
vs = Object.values(item);
//遍历key--map
ks.forEach((value, index) => {
let huo = "";
//需要把默认值处理成0的 字段;其他的字段若false 默认值是“”
MapKey.includes(value) && (huo = MapKeyDefault)
//有字段非false 否则显示huo默认值!
obj[value] = vs[index] || huo;
})
return obj;
},
使用::::
//精简通用处理方式。。。
// let to0 = [
// "courseCount",
// "examCount",
// "finishCourseNum",
// "finishExamNum",
// "percent"
// ];
// let dealValue = tools.dealItemVal(item, to0);
// let newItem = {
// ...other,
// stu_lastLearnCourseId,
// stu_assign,
// ...dealValue
// };
return newItem;
##补充文章 语句:
object方法在andorid里面无法执行(是因为wkwebview的内核偏低导致)!!!
方法2:
Const { 字段1 ,字段2,字段3,字段4……}=item;
????
3: 方法传递解构函数 和 默认参数值 。。。。。
????
????补充es6语法
Assign 合并对象,every循环可以中断,push pop unshit shit不能变量接收,foreach不能变量接收,for of返回item, for in返回index ,
Search !=-1 判断有没有,splice截取替换集合,contect合并数据,,,, 空{} []都是true, 1 和 -1都是true ,0是false…
???
2 判断空{}空[]
可以for in
也可通过json.StringFy()转成字符串比对==‘{}’
5.区分是集合{}还是对象[]? 无法判断是空[] 还是空{}
Object.prototype.toString.call(loginRes.serverInfo) === "[object Object]")
第二个大写。。。
3 扩展属性方法prototype
//声明----如果有此自定义 contains 直接用最好
// Array.prototype.contains = function (needle) {
// for (i in this) {
// if (this[i] == needle) return true;
// }
// return false;
// }
// //直接使用
// var x = Array();
// if(x.contains(‘foo‘)) {
// // do something special
// }
标签:this enum 解构 webview strong 默认值 json 相互 family
原文地址:https://www.cnblogs.com/softwarelanguagebs/p/10419723.html