javaScript高程笔记--最佳实践

1.可维护性

  《1》什么是可维护的代码

    (1)可理解性

    (2)直观性

    (3)可适应性

    (4)可扩展性

    (5)可调试性

  《2》代码约定

    (1)可读性---适当的进行注释【函数和方法、大段代码、复杂的算法、Hack浏览器差异性】

    (2)变量和函数名--语义化

    (3)变量类型透明---一眼看出来是什么类型的数据

  《3》松散耦合---代码最好不要交叉---排错方便

    (1)HTML和JavaScript

    (2)Css和JavaScript

    (3)应用逻辑和事件处理程序(按键、获取DOM-----做了什么事情)

  《4》尊重对象的所有权

    (1)不要为实例或原型添加属性或方法

    (2)不要重新定义已经存在的方法

    (3)尽量避免全局变量

      

var totalObj = {name:"123",funName:   function() {console.log(1);  }
}

    (4)避免与null进行比较

      如果是引用类型的话使用insinstanceof检查其类型

      如果是基本类型使用typetypeof检查其类型

    (5)使用常量

      重复值

      展示给客户使用的字符串类型,方便国际化

      Urls

      任何可能改变的值

2.性能

  《1》注意作用域

    避免全局查找

    避免不必要的属性查找

  《2》优化循环

    减值迭代。0---n的递增性能比  n--0递减性能差

    简化终止条件

    简化循环体

    使用后测试循环   do-while

    展开循环--循环次数确定,展开循环

    原生方法较快,switch语句较快,位运算符语句较快

  《3》最小化语句数

    1.多个变量声明   var   a, b, c;

    2.使用数组对象字面量

  《4》优化DOM交互

    1.最小化现场更新

    2.使用innerHTML

    3.使用事件代理--冒泡

 3.部署

  文件压缩

  代码验证  ESlint

转载于:https://www.cnblogs.com/jcxfighting/p/9400261.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作316:uni-修改其他页面的时间逻辑

<u-form-item label"内容" prop"container" label-width"140"><input placeholder"请输入内容" v-model"form.content" type"texarea" /></u-form-item>定义富文本输入跳转有数值 form: {cont…

工作317:uni-修改其他页面整体样式

<template><view class"wrap"><u-form :model"form" :rules"rules" ref"uForm" :errorType"errorType"><u-form-item label"标题" class"label-left" style"margin-left:30r…

犯犯错

1.忘记初始化&#xff0c;程序卡卡卡 2.忘记加多组输入输出 3.Tarjan处理的时候总是把根节点忘掉 4.主函数用数组从0开始&#xff0c;函数中从1开始用&#xff0c;导致凉凉 5.hdu返回TLE的时候记得考虑越界问题 6.memset可能被卡&#xff0c;T的时候想一想&#xff01; 转载于:…

工作318:uni-切换tabber修改状态修饰

onLoad() {/* 调用市场信息的接口 分别 vuex获取 其他三项 */this.$u.api.getTreasureList({marketId: this.vuex_user.market_id,pageNo: 1,pageSize: 20,type:this.current1,releaseBureau:this.releaseBureau,name:this.name}).then(res > {if (res.data.code 200) {thi…

python--循环列表中字典元素

1. 目的&#xff1a; > 实现列表中字典kay - value的遍历 代码&#xff1a; 循环列表中字典元素info_list [{name:zhao,age:22,hight:171},{name:qian,age:23,hight:165},{name:sun,age:24,hight:148},{name:li,age:25,hight:166} ]# 第一种方式 index 0 while index <…

工作320:uni-预加载问题

<u-loadmore :status"status" />onReachBottom() {console.log(触底~~~~)if (this.pageNo > this.pages){this.status nomore;return;} this.status loading;this.pageNo this.pageNo;setTimeout(() > {this.getData()if (this.pageNo > this.page…

js的基本包装类型

基本包装类型(包装对象)&#xff1a; 先看下以下代码&#xff1a; var s1 "helloworld"; var s2 s1.substr(4); 上面我们说到字符串是基本数据类型&#xff0c;不应该有方法&#xff0c;那为什么这里s1可以调用substr()呢&#xff1f; 通过翻阅js权威指南第3.6章节…

字节跳动小程序支付接入

字节跳动小程序支付接入躺过的坑流程签名支付宝配置问题java福利躺过的坑 流程 小程序申请流程业务调用流程 签名 请求字节跳动接口的签名请求预下单返回验签 支付宝配置问题 流程 小程序申请流程 字节跳动小程序开通申请有个渠道秘钥类型选择RSA2和RSA&#xff0c;不管你选择…

工作322:uni-扩展运算符实现拼接合并操作

}).then(res>{if (res.data.code 200) {/* 进行合并操作 */this.tableData [...this.tableData, ...res.data.data.records]this.pages res.data.data.pagesconsole.log(1)console.log(res)}})

深入浅出JVM-内存模型

JVM内存模型总图程序计数寄存器Java虚拟机栈(JVM Stack)定义特点本地方法栈(Native Method Stack)Java堆(Java Heap)定义特点方法区定义特性可能抛出的异常直接内存(Direct Memory)Metaspace (元空间)元空间特色GC元空间内存分配模型从GC角度看Java堆JVM关闭总图 程序计数寄存器…

HDU 4487 Maximum Random Walk

Maximum Random Walk Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 756 Accepted Submission(s): 419 三维dp&#xff0c;一维的话根本没有办法开展&#xff0c;二维的话没办法保存当前位置或者最远位置&…

工作323:uni-获取时间参数

let date new Date();let dateYear date.getFullYear(); //获取年 let dateMonth date.getMonth(); //获取月 let dateDate date.getDate(); //获取当日let dateDay date.getDay(); //获取当日星期数let da…

深入浅出JVM-GC过程

深入浅出JVM-GC过程Minor GC对象进入老年代的4种情况Full GC空间分配担保Minor GC Minor GC过程 假设现在Heap内存大小为20M&#xff0c;其中年轻代为10M&#xff0c;老年代为10M&#xff0c;年轻代中Eden区6M&#xff0c;From区2M&#xff0c;To区2M&#xff0c;新创建的对象…

工作324:uni-时间过滤器封装

filters: {toChangeDate(e) {console.log(new Date(e).getFullYear())console.log(new Date(e).getMonth())console.log(new Date(e).getDay())let dateYear new Date(e).getFullYear(); //获取年 let dateMonth new Date(e).getMonth()1<10? 0 new Date(e).getMonth() …

[Python] 制作启动uiautomator2 的web版 uiautomatorviewer2 批处理启动

打开一个txt文件&#xff0c;复制如下命令进行并另存为为 .bat文件 1 echo on 2 echo 正在启动 uiautomatorviewer2 3 4 python -m weditor 5 6 echo off 注意&#xff1a;如果批处理里面有中文的话&#xff0c;一定要将 txt 文本的编码方式设置为 ANSI 编码进行保存&#xf…

工作325:uni-日期小于10补0

// 创建补0函数 function pZone (s) {return s < 10 ? 0 s : s }pZone(num)

深入理解java虚拟机--线程安全与锁优化

深入理解java虚拟机--线程安全与锁优化面向过程编程思想和面向对象编程思想java语言中的线程安全线程安全的实现方法锁优化面向过程编程思想和面向对象编程思想 面向过程编程思想&#xff1a;站在计算机的角度&#xff0c;以算法为核心&#xff0c;数据是客体&#xff0c;程序…

配置mysql环境变量

配置mysql环境变量&#xff08;非必要&#xff09; 说明&#xff1a;给mysql配置环境变量后我们就可以在cmd里运行mysql&#xff08;开启、停止等操作&#xff09; 1. 和其实环境变量的配置方法一样&#xff0c;我们打开环境变量配置窗口&#xff08;组合键winPause -> 更改…

工作325:uni-格式化日期

/*格式化日期&#xff1a;yyyy-MM-dd*/formatDate(date) {var myyear date.getFullYear();var mymonth date.getMonth() 1;var myweekday date.getDate();if (mymonth < 10) {mymonth "0" mymonth;}if (myweekday < 10) {myweekday "0" mywe…

微信小程序获取unionid为空

微信小程序获取unionid为空原因&#xff1a;未绑定微信开放平台绑定步骤原因&#xff1a;未绑定微信开放平台 最新在调试一个新的微信小程序&#xff0c;因为要对web授权登录、app授权登录、小程序授权登录&#xff1b;几种登录场景根据unionid来开放登录。但是授权出现获取un…