脚本执行顺序
     js代码是按照它们在html中出现的顺序一行一行被解释的。这表明把函数定义和变量声明放到<head>中会很好。这保证了函数的代码和事件相关的处理程序不会立即执行。

大写小敏感

js是大小写敏感的语言。这意味着result,Result,RESULT是不同的变量。所有的js关键字都是小写的,当你写if是一定不要写成

If或IF.因为js使用camel-back的命名方式,许多方法或属性都是大小写混写的。比如Document对象的lastModified中M必须大写,否

则提示undefined。

html和大小写敏感    在html4或更早的版本中,标签和属性是大小写不敏感的,例如下面两个是一样的:

<<IMG SRC="plus.gif" ALT="Increment x" ONCLICK="x=x+1">>
<<img src="plus.gif" alt="Increment x" onClick="x=x+1">>

这本身没有问题,问题是html中两种不同的引用事件处理者的方式(ONCLICK和onClick),在js中事件处理者正确的写法是onclick

,之所以ONCLICK和onClick能工作是因为浏览器自动把它们绑定到onclick上。

看下面的例子有什么不同。

<<img src="plus.gif" alt="Increment x" onclick="x=x+1">>
<<img src="plus.gif" alt="Increment x" onclick="X=X+1">>

第一个例子中x是小写的,第二个是大写的,js是大小写敏感的,因此这是两个不同的变量。

xhtml要求所有的元素和属性都要小写因此我们也应该这样做。

空格    这里的空格包括普通的空格、制表符、换行符,这些空格都会被js忽略掉。因此下面的例子是一样的:

x        = x +         1;
x = x + 1;

因此使用空格对开发者有益。合适的使用空格控制语句、循环、声明可以增加可读性。

注意:一些开发者讨厌过慢的下载速度,于是手动或者使用工具删除没用的空格。

如果语意清楚,那么多余的空格会被忽略掉。例如x=x+1;没有空格,但是语义清楚。然而,除了算数运算符外,大多数的操作符

都是需要空格来指明期待的意思的。如下: s = typeof x; s = typeofx; 第一句使用typeof得到x的类型赋值给s;第2句把变量typeofx的值赋值给s;两者意思完全不同。     js忽略多余的空格有两个例外,另一个就是放在单引号或双引号中的空格,如:

var s = "This      spacing   is           p r e s e r v e d.";

有经验的程序员可能好奇如果直接在一个字符串中包括换行符会发生什么。答案涉及到另一个空白和JavaScript的微妙之处:隐含分号和语句的关系。

                            

                          语句

语句是js的本质。它们是解释器执行特定动作的指令。最常见的语句就是赋值语句,赋值语句使用 = 操作符,如 x = y + 10; 把

右边的值赋值给左边。不要把 = 和用于判断的==混淆了。        语句定界符:分号和Returns

分号表明语句结束。如你可以使用分号将多个语句放在同一行: x = x + 1;  y = y + 1;  z = 0;     你也可以包含更复杂或空语句在一行: x = x + 1; ;; if (x >> 10) { x = 0; }; y = y - 1;

尽管语句的分割符是分号,但是你可以使用换行符而不加分号,如: x = x + 1 y = y - 1     但是如果你想让两个语句在同一行,则必须添加分号。

尽管上面的例子没有加分号,没有报错,但是不要这么做,因为如果一行代码如果是一个完整的js语句,浏览器会自动添加分号

而使你得不到想要的结果。典型的例子就是return语句。如: return x 会被当做 return; x; 而不是当做 return x;

因此依赖于浏览器自动添加分号是一个坏习惯。最好再每个语句后面添加分号。

        语句块

大括号{}用来组织多列语句。 你可以把多个语句放到一个{}中组成一个语句块。比如函数就是:

function add(x, y)
{
var result = x + y;
return result;
}

如果你使用for或者while或if,最好把它们写到语句块中:

if (x >> 10)
{
x = 0;
y = 10;
}

javascrit2.0完全参考手册(第二版) 第2章第2节 语言特性的更多相关文章

  1. javascrit2.0完全参考手册(第二版) 第1章第2节:javascript的历史和使用

    javascript曾经带给人许多误解,例如如果你不了解它的历史,那么你可能困惑它和java有什么关系,其实它们一点关系都没有.网景公司1995年在Navigator 2.0 中引入这门语言时它叫Li ...

  2. javascrit2.0完全参考手册(第二版) 第2章第1节 基本定义

    在这里,我们介绍一些将要使用的编程语言术语.表2-1提供了精确定义的概念. Table 2-1: 编程语言的基本术语 名字 定义 例子 Token令牌 最小的不可分割的词汇的语言单位.一个连续的字符序 ...

  3. javascrit2.0完全参考手册(第二版) 第1章第1节 在XHTML文档中增加javascript

    通常,向文档中增加script脚本使用<script>元素,在HTML中增加脚本的方式有4中: (1)放到<script></script>块中: (2)<s ...

  4. javascrit2.0完全参考手册(第二版) 第2章第4节 基本的数据类型

    每一个变量都有一个确定的类型表明它存储什么样的数据.js基本的数据类型有strings字符串.numbers数字.Booleans布尔类型.字符串是使用双引号或单引号包含的一串字符:数字包括整数或浮点 ...

  5. javascrit2.0完全参考手册(第二版) 第2章第3节 变量

    变量存储数据.每个变量都有一个名字,叫做标识符.在js中声明变量使用var关键字,var为新的数据分配存储空间,或者指示一直标识符正在使用.声明变量非常简单: var x; 这个语句告诉解释器一个新的 ...

  6. Spring Security 5.0.x 参考手册 【翻译自官方GIT-2018.06.12】

    源码请移步至:https://github.com/aquariuspj/spring-security/tree/translator/docs/manual/src/docs/asciidoc 版 ...

  7. Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装

    Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装  一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: 在Windows和Linux上安装Virt ...

  8. CSAPP深入理解计算机系统(第二版)第三章家庭作业答案

    <深入理解计算机系统(第二版)>CSAPP 第三章 家庭作业 这一章介绍了AT&T的汇编指令 比较重要 本人完成了<深入理解计算机系统(第二版)>(以下简称CSAPP) ...

  9. Kali Linux Web渗透测试手册(第二版) - 1.0 - 渗透测试环境搭建

    一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: 在Windows和Linux上安装VirtualBox 创建一个Kali Linux虚拟机 更新和升级Kali Linux ...

随机推荐

  1. LIS的nlogn

    nlogn老忘,开个帖记录一下 开一个栈,每次取栈顶元素top和读到的元素temp做比较,如果temp > top 则将temp入栈:如果temp < top则二分查找栈中的比temp大的 ...

  2. DateTime还是DateTimeOffset?Now还是UtcNow?

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:新年第一篇文章,就来谈谈关于时间的简单技术问题:该用DateTime还是DateTim ...

  3. 自己yy的Splay

    #include <iostream> #include <cstdio> #include <queue> using namespace std; ; stru ...

  4. PHP入门 - - 07-->HTML的表单

    一.<form>标签及其属性 <from></form>标签对用来创建一个表单,即定义表单的开始和结束位置,<form>标签具有下面等属性.       ...

  5. js-js实现,在HTML中使用JavaScript,基本概念

    Js实现: 1.JavaScript实现的组成: 核心(ECMAScript):由ECMA-262定义,提供核心语言功能 文档对象模型(DOM)提供访问和操作网页内容的方法以及接口 浏览器对象模型(B ...

  6. STL UVA 11991 Easy Problem from Rujia Liu?

    题目传送门 题意:训练指南P187 分析:用vector存id下标,可以用map,也可以离散化用数组存(发现不用离散化也可以) map #include <bits/stdc++.h> u ...

  7. POJ2135 Farm Tour(最小费用最大流)

    题目问的是从1到n再回到1边不重复走的最短路,本质是找1到n的两条路径不重复的尽量短的路. #include<cstdio> #include<cstring> #includ ...

  8. BZOJ3414 : Poi2013 Inspector

    二分答案,没有出现过的时刻没有用,可以进行离散化. 首先如果某个时刻出现多个人数,那么肯定矛盾. 然后按时间依次考虑,维护: $t$:剩余可选人数. $s$:现在必定有的人数. $cl$:往左延伸的人 ...

  9. BZOJ 1053 & 反素数

    题意: 反素数,膜一篇GOD's Blog...http://blog.csdn.net/ACdreamers/article/details/25049767 此文一出,无与争锋... CODE: ...

  10. BZOJ1012[JSOI2008]最大数maxnumber 题解

    题目大意: 维护一个数列,有两种操作:1. 查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2.插入操作:将n加上t,其中t是最近一次查询操作的答案(如果还未执行 ...