[译]Javascript风格要素(一)(2)
作者:秦歌 来源:随网之舞 发布时间:2008-02-28 12:58:00
标签:JavaScript,优化,风格,编程
结构化语句要始终使用区块
下面这个例子是一个cookie类构造器。它创建了一个有get和set方法的对象。
function yg_cookie() {
this.get = function (n) {
var s,
e,
v = '',
c = ' ' + document.cookie + ';';
if ((s = c.indexOf((' ' + n + '='))) >= 0) {
if ((e = c.indexOf(';',s)) == -1)
e = c.length;
s += n.length + 2;
v = unescape(c.substring(s, e));
}
return (v);
}
this.set = function (n,v,e) {
document.cookie = n + "=" + escape(v) +
";expires=" + (new Date(e * 1000)).toGMTString() +
";path=/" + ";domain=www.yahoo.com";
}
}
var _yc = new yg_cookie();
Javascript的if语句和C语言的相似:它能执行一个语句或一个区块。关于用语句的问题是一个普通的错误非常难以探测。最好把
if ((e = c.indexOf(';', s)) == -1)
e = c.length;
写成
if ((e = c.indexOf(';', s)) == -1) {
e = c.length;
}
区块的用处是避免了下面的情况:
if ((e = c.indexOf(';', s)) == -1)
e = c.length;
s += n.length + 2;
它将出现当indexOf返回-1是,s是只被增加,但这不是实际情形。像这样的bug被发现代价是非常高的,但是可以通过一直使用大括号声明结构来廉价的避免。


猜你喜欢
- 在计算机程序中,算法是灵魂,是程序的精髓所在。程序执行效率的高低直接取决于算法的优劣,所以计算机算法是计算机课程必修课。算法可以快速计算出我
- 饼图中的series有个avoidLabelOverlap属性,avoidLabelOverlap:是否启用防止标签重叠策略,默认开启,在标
- 函数可以参考:<% '注册论坛用户,参数说明 'username 用户登录名称 
- 前面提到了银行转账这个场景,展示了一个比较耗时的转账操作。这篇继续转帐,下面展示一段程序,多个线程的操作都更改了amount变量导致运行结果
- 构建网络ResNet由一系列堆叠的残差块组成,其主要作用是通过无限制地增加网络深度,从而使其更加强大。在建立ResNet模型之前,让我们先定
- $emit传入的事件名称只能使用小写,不能使用大写的驼峰规则命名如果修改后还是不行的话,就改用:this.$parent.Event (Ev
- 准备工作1.安装scrapy_redis包,打开cmd工具,执行命令pip install scrapy_redis2.准备好一个没有BUG
- 如下所示:#coding=utf-8import sys, re, osdef getDictList(dict): regx
- 前言在安装MySQL的时候会默认初始化几个MySQL运行所需的数据库:mysql, sys, information_schema, per
- 概述在view函数中,如果需要中断request,可以使用abort(500)或者直接raise exception。当然我们还需要返回一个
- 记一次在写cli脚本的时候,碰到的一个问题。问题自己是写服务端的,有时候会写一些cli脚本去跑测试。习惯main.go写主流程,其他子文件写
- 近期,又有接触到pyecharts这个包的使用,后面发现这个曾经好用的包发生了一些变化,为了方便大家的使用,这里整理如下:绘图风格theme
- 场景针对园区停车信息,需要对各个公司提供的停车数据进行整合并录入自家公司的大数据平台数据的录入无外乎就是对数据的增删改查下面上一个常规的写法
- 一、array_map() 1、array_map() 函数将用户自定义函数作用到数组中的每
- 反转链表首先讨论特殊节点如果节点在首位,则反转之后,首位节点的next值为nil。func reverse(head *ListNode)
- 一、架构介绍Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方
- 说在前面突发奇想,想了解一下mysql order by排序是以什么规则进行的? 好了,话不多说,直接进入正题吧。MySql order b
- 因为最近在做深度学习抠图,正好要用到蒙版进行抠图,所以我将抠图代码进行了封装注释,可以直接使用。可能走了弯路,若有高见请一定提出!主要代码i
- 需要把ip地址转换为10进制数,然后也可以把10进制数转化为ip地址,计算机ping这个十进制数可以ping通对应的ip地址,说明已经实现功
- 本文记录了mysql 5.7.18绿色版下载安装的详细过程1、先下载mysq5.7.18绿色版,然后解压出来,放在一个目录下,我的解压mys