js 开发过程中经验及总结记录
一 let 和 var 作用域
1 普通用法
for (var i = 0; i < 5; i++) {
console.log(i);
}
console.log(i); //---结果是 5 ,因为var作用域不仅仅是当前模块。
for (let i = 0; i < 5; i++) {
console.log(i);
}
console.log(i); //---结果是i is not defined,因为let的作用只是当前模块。
结果都是: 0,1,2,3,4 ,因为是直接同步输出。
ps: 可以试试,吧同样的代码放到定时器setTimeout(()=>{……});或 异步promise() 里面。
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
// }
js 开发过程中经验及总结记录的更多相关文章
- android(java) 开发过程中经验及总结记录
android(java) 开发过程中经验及总结记录
- bootStrap table 和 JS 开发过程中遇到问题汇总
1..bootStrap-table表头固定 在table定义的时候给高度属性就可以自动生成滚动条,并且固定表头[height: 220,] 2.为动态生成的DOM元素绑定事件 on("cl ...
- H5开发过程中修复的bug记录
从2016年8月1日开始真正意义上的修复bug,也是自己开发之路的开端,希望在这里记录自己修bug过程中遇到的问题及解决方法,待能够自己开发需求的时候,计划记录开发新需求过程中遇到的问题,并且记录自己 ...
- ArcGIS JavaScript开发过程中,底图产生拼接缝问题
ArcGIS JS开发过程中,地图产生了拼接缝 上图调用的是天地图,确认原地图服务是没有这种缝隙的. 其他人电脑上测试,发现没有此问题. 纠结了半天,群里问了大神,大神说是浏览器设置了缩放.... 取 ...
- 撰写一篇博客要求讲述四则运算2的设计思想,源程序代码、运行结果截图、编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志。
一.撰写一篇博客要求讲述四则运算2的设计思想,源程序代码.运行结果截图.编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志. 1.设计思想: ①创建test.jsp建立第一个前端界面,提 ...
- web开发过程中经常用到的一些公共方法及操作
进化成为程序猿也有段岁月了,所谓的经验,广度还是依旧,只不过是对于某种功能有了多种实现方式的想法.每天依旧不厌其烦的敲打着代码,每一行代码的回车似乎都有一种似曾相识的感觉.于是乎:粘贴复制,再粘贴再复 ...
- 开发过程中 的一些 补充知识点 + 关于mysql中的日期和时间函数?
参考: https://www.jb51.net/article/23966.htm https://yq.aliyun.com/articles/260389 mysql中的 日期格式是: HHHH ...
- 一些关于angularJS的自己学习和开发过程中遇到的问题及解决办法
这篇文章也许会不定时更新,主要记录这段时间内自己遇到的angularjs学习开发的一些问题的解决办法.本文以摘抄为主,主要目的还是将自己遇到的困惑在各个地方查到的解决办法的汇总,给自己留个备忘吧. 1 ...
- Unity项目开发过程中常见的问题,你遇到过吗?
最近看到有朋友问一个unity游戏开发团队,需要掌握哪些知识之类的问题.事实上Unity引擎是一个很灵活的引擎,根据团队开发游戏类型的不同,对人员的要求也有差异,所以不能一概而论.但是,一些在Unit ...
随机推荐
- Silverlight中关于ComboBox的各种使用
前端放置了几个ComboBox的控件. <Grid x:Name="LayoutRoot" Background="White"> <Comb ...
- 统计UPD丢包工具
下载位置:https://github.com/eyjian/libmooon/tree/master/shell #!/bin/bash # 统计UPD丢包工具 # 可选参数1:统计间隔(单位:秒, ...
- 老树新芽,在ES6下使用Express
要让Express在ES6下跑起来就不得不用转码器Babel了.首先新建一个在某目录下新建一个项目.然后跳转到这个目录下开始下面的操作. 简单走起 安装babel-cli $ npm install ...
- File类、文件过滤器、递归、文件及文件夹的操作方法
一.File Io概述: 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作. 当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作. 因此我们把这种输入和 ...
- noip第23课作业
1. 营救 铁塔尼号遇险了!他发出了求救信号.距离最近的哥伦比亚号收到了讯息,时间就是生命,必须尽快赶到那里. 通过侦测,哥伦比亚号获取了一张海洋图.这张图将海洋部分分化成n*n个比较小的单位,其 ...
- hdu5178 pairs
题目 //打注释的是我的代码,一直超时,别人三行代码顶我一坨,同是尺取法,为什么 我的复杂度就这么高呢? #include <cstdio> #include <queue> ...
- Codeforces Round #264 (Div. 2) E. Caisa and Tree 树上操作暴力
http://codeforces.com/contest/463/problem/E 给出一个总节点数量为n的树,每个节点有权值,进行q次操作,每次操作有两种选项: 1. 询问节点v到root之间的 ...
- I - Dividing Stones
Description There are N stones, which can be divided into some piles arbitrarily. Let the value of e ...
- ?js调用PHP里的变量,怎么弄?
js调用PHP里的变量,怎么弄 网上给的例子都是js文件里一开始先给这个变量一个值,要是那样有啥意思啊,我要的就是可以变化的. hychyc_2008 | 浏览 2741 次 2013-04-18 ...
- 一场关于 .net core 和 .net framework 编码的案情分析
案情背景 目前公司做新项目,基本所有新项目都是用.net core来做,旧项目一半还是基于 .net framework下面,一半已经迁移到了core平台.在做新项目的时候,有个功能需要对接到旧项目那 ...