《JavaScript模式》的读书笔记,个人向!
更新进度随我的阅读进度

基本技巧

尽量少用全局变量

  1. 防止变量污染
  2. 注意JS变量提升问题
  3. 尽量使用单一var模式,只使用一个var在函数顶部进行变量声明
function fun () {var a =1,b=2,sum = a+b,函数体//}

for循环优化

  1. 循环条件优化
for(var i=0; i<myarry.length; i++){//对array[i]进行操作
}

上面那种循环,将marry.length作为循环条件,每次循环时都要访问数据的长度,会使代码变慢,尤其是当条件为HTML容器对象时,每次循环都回去访问DOM,而DOM查询操作是非常慢的,优化方法就是将已循环过的条件缓存起来

//这种方式,对长度只提取一次
for(var i=0, max=myarry.length; i<max; i++){//对array[i]进行操作
}//也可以结合刚才的单一var 模式
var myarry=[],max=myarry.length,i=0for(i; i<max; i++){}

2、用i++替代 i=i+1, i+=1
这样替代的好处是1、使用了最少的变量 2、逐步减至0因为跟0比较比跟数组长度比较更有效率
优化代码

var myarr=[],i=myarr.lengthwhile(i--){//操作}

for-in循环

  1. 推荐使用,for循环来遍历数组,用for-in循环来遍历对象
  2. hasOwnProperty()过滤原型链属性
var man = {hands:2,legs:2,head:1
},
i=0
Object.prototype.clone='zhang'for(i in man){if(man.hasOwnProperty(i)){console.log(i,":",man[i]);}
}
//这样子就在循环的时候过滤掉了继承属性了

hasOwnProperty(),并不常用,当确认不了对象的内容时可以用上它进行安全检查

switch模式

switch(n)
{
case 1:执行代码块 1break;
case 2:执行代码块 2break;
default:result = "unknow"
}
  • 保持缩进整齐
  • 每个case语句结尾有一个break语句
  • 用default作为switch的结尾,当所有case不匹配时给出一个默认结尾

不要增加内置的原型

尽量不要对内置构造函数(Object(),Array()等)增加原型

避免使用隐式类型转换

JS中在使用比较语句时会进行隐式类型转换,别如‘false==0’会返回true
在使用比较语句的时候使用'==='和'!==='来进行比较

parseInt()

parseInt()第二个参数是进制参数,通常可以省略,但最好不要省略,因为该函数在解析0开头的字符串的时候会按8进制来解析

var year="09";
year=parseInt(year,10) // return 9
// parseInt(year)返回值是0//如果是纯数字字符串,可以用下面两种方法转换
+'08' //结果是8
Number('08') //结果是8
// 如果不是纯数字字符串,只能用paeseInt()来解析,其它方法都将反回NAN

用注释生成API文档

JS有两个开源的工具来用注释生成API文档,分别是JSDoc Toolkit和YUIDoc
根据这两工具所规定的格式来写注释代码,就能够生成API文档

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

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

相关文章

Python字符串处理全攻略(四):常用内置方法轻松掌握

文章目录 引言Python字符串常用内置方法切片功能介绍语法示例注意事项 str.isalpha()功能介绍语法示例注意事项 str.isdigit()功能介绍语法示例注意事项总结 str.isalnum()功能介绍语法示例注意事项总结 str.isupper()功能介绍语法示例注意事项 islower()功能介绍语法示例注意事…

php空间限制磁盘限额,ORA-01536:超出表空间XXXX的空间限额

问题描述&#xff1a;在FMIS2600用户下进行某个DDL或DML操作时&#xff0c;提示&#xff1a;ORA-01536&#xff1a;超出表空间FMIS2600 的空间限额 或者 ORA-01950: 对表空间/*******************ORA-01536&#xff1a;超出表空间XXXX的空间限额*******************//*********…

01爬虫基本原理及Requests库下载

一、爬虫基本原理 1.什么是爬虫 ​ 爬虫就是爬取数据 2.什么是互联网&#xff1f; ​ 就是由一堆网络设备&#xff0c;把一台台的电脑互联在一起 3.互联网建立的目的 ​ 数据的传递和数据共享 4.什么是数据&#xff1f; ​ 例如&#xff1a; ​ 电商平台的商业信息&#xff08;…

php 怎么实现收藏功能,php收藏功能如何实现

php收藏功能如何实现php收藏功能的实现方法&#xff1a;首先创建好数据库表 &#xff1b;然后创建前台代码&#xff0c;实现登录界面&#xff1b;接着通过html实现收藏样式&#xff1b;最后使用php进行后台处理即可。推荐&#xff1a;《PHP视频教程》这是数据库表话不多说上代码…

quartus FIR仿真笔记

第一章&#xff1a; 最近百度了一些fir滤波器的资料&#xff0c;都没有自己想要的。容我吐槽一大段文字> 在旧版的quartus中&#xff0c;比如13.0&#xff0c;有两个fir滤波器的选项&#xff0c;如下所示&#xff1a; 网上很多都是讲不带II的那个&#xff0c;而在新版的quar…

关于时钟

/** * 时间获取 * * param mGITime 控件 * param context 承接上下文 */public void endTime(GeneralInput mGITime, Context context) { TimePickerDialog tp new TimePickerDialog(context, (view12, hourOfDay, minute) -> { StringBuilder sb new StringBui…

LVS + Keepalived 双机热备+DR模式

简介 Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具&#xff0c;主要用来提供故障切换和健康检查&#xff08; Health Checking &#xff09;功能——判断 LVS 负载调度器、节点服务器的可用性&#xff0c;及时隔离并替换为新的服务器&#xff0c;当故障主机恢复后就…

php程序layer,php 提交表单 关闭layer弹窗iframe的实例讲解

介绍一款非常好用的前端弹窗插件&#xff1a;根据官方的API&#xff1a;layer的iframe弹窗//iframe层-父子操作layer.open({type: 2,area: [700px, 530px],fix: false, //不固定maxmin: true,content: test/iframe.html});这里以php开发为例 演示如何 提交表单后自动关闭layer弹…

Django之 RESTful规范

RESTful 规范 一、什么是RESTful REST与技术无关&#xff0c;代表的是一种软件架构风格&#xff0c;REST是Representational State Transfer的简称&#xff0c;中文翻译为“表征状态转移”REST从资源的角度类审视整个网络&#xff0c;它将分布在网络中某个节点的资源通过URL进行…

php编译 ftp,无需重新编译php加入ftp扩展的解决方法

首先&#xff0c;进入源码目录cd php-5.2.13/ext/ftp#运行phpize生成configure/usr/local/php/bin/phpize#编译,指定php-config,注意这里的php-config,不是php.ini./configure --with-php-config/usr/local/php/bin/php-config#上面可以添加--enable-ftp,也可以不用添加#编译安…

git常用命令及分支简介

2019独角兽企业重金招聘Python工程师标准>>> 1、git基本命令 1&#xff09;git add 将想要快照的内容写入缓存区 2&#xff09;git status -s "AM" 状态的意思是&#xff0c;这个文件在我们将它添加到缓存之后又有改动 3&#xff09;git commit -m 第一次…

企业私有云部署im,视频服务

1&#xff0c;安全问题 2&#xff0c;员工跨地域 3&#xff0c;内部视频培训 考勤申请&#xff0c;设备借用申请 名片申请 会议室预订 审批 内网&#xff0c;局域网部署 Android源码 https://github.com/starrtc/android-demo ios源码https://github.com/starrtc/ios-demo

php html 伪静态,php 伪静态(url重写)的写法

来看下面这个网页 url&#xff1a;http://www.jbxue.com/test.php/1,100,8630.html其实处理的脚本是test.php 参数为1,100,8630相当于test.php?a1&b1100&c8630 只不过这样的URL太难记。搜索引擎也不喜欢。真静态只是完全生成了HTML。客户端访问的时候直接输出。不用脚…

客服工作台

public Page<Record> customerDeskList(QhyfController controller) throws Exception {//获取分页信息PageInfo pageInfo controller.getPageInfo();int pageNumber pageInfo.getPageIndex();int pageSize pageInfo.getPageSize();List<String> paras new Arr…

Leetcode怎么调试java代码,在Clion上调试LeetCode代码

在Clion上调试LeetCode代码在leetcode上做题调试起来总有些不方便&#xff0c;所以查阅了一些资料后&#xff0c;按以下配置&#xff0c;自我感觉效率还行&#xff0c;分享给大家。祝大家刷题愉快。并附上自己整理的leetcode400题题表。Leetcode400题&#xff1a;notion地址依赖…

来入门一下kotlin吧

Kotlin是什么&#xff1f; Kotlin是一种在java虚拟机上运行的静态类型的编程语言&#xff0c;被称之为 Android 世界的Swift&#xff0c;由 JetBrains 设计开发并开源。 Kotlin的优势&#xff01; Kotlin可以编译成java字节码&#xff0c;也可以编译成JavaScript。方便在没有ja…

apache2 配置php,Windows配置PHP5与Apache2

windows下安装和配置PHP5与Apache2真是比linux下难多了&#xff0c;唉。这里用的是PHP Version 5.2.1和Apache HTTP Server 2.2.4&#xff0c;都是从官方网站下的。1. 下载安装&#xff0c;不多说了&#xff0c;apache一路按下去就ok&#xff0c;php连按都不用&#xff0c;解压…

ReactNative 触摸事件处理

ReactNative触摸事件处理 对RN触摸事件的捕获与冒泡机制的理解 组件A、B、C结构 组件A组件B组件C 捕获、冒泡机制 sequenceDiagram A->>A: 是否捕获&#xff1f;若是则停止向下一级传递 A->>B: B->>B: 是否捕获&#xff1f;若是则停止向下一级传递 B->&g…

CISCO网络故障排错命令总结分享

一、故障处理命令 1、show命令&#xff1a; 1&#xff09; 全局命令&#xff1a; show version &#xff1b;显示系统硬件和软件版本、DRAM、Flash show startup-config &#xff1b;显示写入NVRAM中的配置内容 show running-config &#xff1b;显示当前运行的配置内容 show b…

java input回车,用java怎样编写加减乘除,从键盘输入,例如:1+2按回车得到

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼import org.junit.Test;import java.util.regex.Matcher;import java.util.regex.Pattern;public class TestCalc {Testpublic void testCalculator() {String input "11";//输入String rule "(\\d\\.?\\d*)([\\…