JavaScript入门教程(2):JS基础知识

2016-02-20 00:55 6 1 收藏

下面是个JavaScript入门教程(2):JS基础知识教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - Web开发 】

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

在什么地方插入 JavaScript
  JavaScript 可以出现在 HTML 的任意地方。使用标记script/script,你可以在 HTML 文档的任意地方插入 JavaScript,甚至在HTML之前插入也不成问题。不过如果要在声明框架的网页(框架网页)中插入,就一定要在frameset之前插入,否则不会运行。
基本格式

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)script
!--
...
(JavaScript代码)
...
//--
/script

第二行和第四行的作用,是让不懂script标记的浏览器忽略 JavaScript 代码。一般可以省略,因为现在想找不懂 Script 的浏览器,恐怕就连博物馆里也没有了。第四行前边的双反斜杠//是 JavaScript 里的注释标号,以后将学到。

另外一种插入 JavaScript 的方法,是把 JavaScript 代码写到另一个文件当中(此文件通常应该用.js作扩展名),然后用格式为script src="javascript.js"/script的标记把它嵌入到文档中。注意,一定要用/script标记。
参考 script标记还有一个属性:language(缩写lang),说明脚本使用的语言。对于 JavaScript,请用language="JavaScript"。
参考 相对于script标记,还有一个server标记。server标记所包含的,是服务器端(Server Side)的脚本。本教程只讨论客户器端(Client Side)的 JavaScript,也就是用script标记包含的脚本。
如果想在浏览器的地址栏中执行 JavaScript 语句,用这样的格式:
javascript:JavaScript语句
这样的格式也可以用在连接中:
a href="javascript:JavaScript语句".../a

JavaScript 基本语法
每一句 JavaScript 都有类似于以下的格式:
语句;
其中分号;是 JavaScript 语言作为一个语句结束的标识符。虽然现在很多浏览器都允许用回车充当结束符号,培养用分号作结束的习惯仍然是很好的。
语句块 语句块是用大括号{ }括起来的一个或 n 个语句。在大括号里边是几个语句,但是在大括号外边,语句块是被当作一个语句的。语句块是可以嵌套的,也就是说,一个语句块里边可以再包含一个或多个语句块。

JavaScript 中的变量
什么是变量 从字面上看,变量是可变的量;从编程角度讲,变量是用于存储某种/某些数值的存储器。所储存的值,可以是数字、字符或其他的一些东西。
变量的命名 变量的命名有以下要求:
只包含字母、数字和/或下划线;
要以字母开头;
不能太长(其实有什么人喜欢使用又长又臭的名字呢?);
不能与 JavaScript 保留字(Key Words,Reserved Words,数量繁多,不能一一列出;凡是可以用来做 JavaScript 命令的字都是保留字)重复。
而且,变量是区分大小写的,例如,variable 和 Variable 是两个不同的变量。不仅如此,大部分命令和对象(请参阅对象化编程章)都是区分大小写的。
提示 给变量命名,最好避免用单个字母abc等,而改用能清楚表达该变量在程序中的作用的词语。这样,不仅别人能更容易的了解你的程序,而且你在以后要修改程序的时候,也很快会记得该变量的作用。变量名一般用小写,如果是由多个单词组成的,那么第一个单词用小写,其他单词的第一个字母用大写。例如:myVariable 和 myAnotherVariable。这样做仅仅是为了美观和易读,因为 JavaScript 一些命令(以后将用更具体的方法阐述命令一词)都是用这种方法命名的:indexOf;charAt 等等。
变量需要声明 没有声明的变量不能使用,否则会出错:未定义。声明变量可以用:

var 变量 [= 值];

var 我们接触的第一个关键字(即保留字)。这个关键字用作声明变量。最简单的声明方法就是var 变量;,这将为变量准备内存,给它赋初始值null。如果加上= 值,则给变量赋予自定的初始值值。

数据类型 变量可以用的数据类型有:
整型 只能储存整数。可以是正整数、0、负整数,可以是十进制、八进制、十六进制。八进制数的表示方法是在数字前加0,如0123表示八进制数123。十六进制则是加0x:0xEF表示十六进制数EF。
浮点型 即实型,能储存小数。有资料显示,某些平台对浮点型变量的支持不稳定。没有需要就不要用浮点型。
字符串型 是用引号" "、' '包起来的零个至多个字符。用单引号还是双引号由你决定。跟语文一样,用哪个引号开始就用哪个结束,而且单双引号可嵌套使用:'这里是"JavaScript 教程"。' 不过跟语文不同的是,JavaScript 中引号的嵌套只能有一层。如果想再多嵌一些,你需要转义字符:
  转义字符 由于一些字符在屏幕上不能显示,或者 JavaScript 语法上已经有了特殊用途,在要用这些字符时,就要使用转义字符。转义字符用斜杠开头:' 单引号、" 双引号、n 换行符、r 回车(以上只列出常用的转义字符)。于是,使用转义字符,就可以做到引号多重嵌套:'Micro 说:"这里是"JavaScript 教程"。" '
布尔型 常用于判断,只有两个值可选:true(表真)和 false(表假)。true 和 false 是 JavaScript 的保留字。它们属于常数。
对象 关于对象,在对象化编程一章将详细讲到。
由于 JavaScript 对数据类型的要求不严格,一般来说,声明变量的时候不需要声明类型。而且就算声明了类型,在过程中还可以给变量赋予其他类型的值。声明类型可以用赋予初始值的方法做到:var aString = '';
这将把 aString 定义为具有空值的字符串型变量。var anInteger = 0;
这将把 anInteger 定义为值为 0 的整型。
变量的赋值 一个变量声明后,可以在任何时候对其赋值。赋值的语法是:
变量 = 表达式;
其中=叫赋值符,它的作用是把右边的值赋给左边的变量。下一节将讨论到表达式。

JavaScript常数 有下列几个:

null 一个特殊的空值。当变量未定义,或者定义之后没有对其进行任何赋值操作,它的值就是null。企图返回一个不存在的对象时也会出现null值。
NaN Not a Number。出现这个数值比较少见,以至于我们可以不理它。当运算无法返回正确的数值时,就会返回NaN值。NaN 值非常特殊,因为它不是数字,所以任何数跟它都不相等,甚至 NaN 本身也不等于 NaN 。
true 布尔值真。用通俗的说法,对。
false 布尔值假。用通俗的说法,错。

在 Math 对象中还有一系列数学常数。这将在讨论对象化编程时谈到。

表达式与运算符
表达式 与数学中的定义相似,表达式是指具有一定的值的、用运算符把常数和变量连接起来的代数式。一个表达式可以只包含一个常数或一个变量。运算符可以是四则运算符、关系运算符、位运算符、逻辑运算符、复合运算符。下表将这些运算符从高优先级到低优先级排列:
中括号只用于指明数组下标 xy x=y
x=y xy 等于、
不等于 赋值、
复合运算 x+=y x-=y x*=y
x/=y x%=y

注意 所有与四则运算有关的运算符都不能作用在字符串型变量上。字符串可以使用 +、+= 作为连接两个字符串之用。

提示 请密切注意运算的优先级。编程时如果不记得运算符的优先级,可以使用括号( )。例如:(a == 0)||(b == 0)。

一些用来赋值的表达式,由于有返回的值,可以加以利用。例如,用以下语句:a = b = c = 10,可以一次对三个变量赋值。

语句
下面将开始讨论 JavaScript 基本编程命令,或者叫语句。

注释

像其他所有语言一样,JavaScript 的注释在运行时也是被忽略的。注释只给程序员提供消息。

JavaScript 注释有两种:单行注释和多行注释。单行注释用双反斜杠//表示。当一行代码有//,那么,//后面的部分将被忽略。而多行注释是用/*和*/括起来的一行到多行文字。程序执行到/*处,将忽略以后的所有文字,直到出现*/为止。

提示 如果你的程序需要草稿,或者需要让别人阅读,注释能帮上大忙。养成写注释的习惯,能节省你和其他程序员的宝贵时间,使他们不用花费多余的时间琢磨你的程序。在程序调试的时候,有时需要把一段代码换成另一段,或者暂时不要一段代码。这时最忌用 Delete 键,如果想要回那段代码怎么办?最好还是用注释,把暂时不要的代码隐去,到确定方法以后再删除也不迟。

if 语句if ( 条件 ) 语句1 [ else 语句2 ];
本语句有点象条件表达式?::当条件为真时执行语句1,否则,如果 else 部分存在的话,就执行语句2。与?:不同的是,if 只是一条语句,不会返回数值。条件是布尔值,必须用小括号括起来;语句1和语句2都只能是一个语句,欲使用多条语句,请用语句块。

注意 请看下例:if (a == 1)
  if (b == 0) alert(a+b);
else
  alert(a-b);

本代码企图用缩进的方法说明 else 是对应 if (a == 1) 的,但是实际上,由于 else 与 if (b == 0) 最相近,本代码不能按作者的想法运行。正确的代码是if (a == 1) {
  if (b == 0) alert(a+b);
} else {
  alert(a-b);
}

提示 一行代码太长,或者涉及到比较复杂的嵌套,可以考虑用多行文本,如上例,if (a == 1) 后面没有立即写上语句,而是换一行再继续写。浏览器不会混淆的,当它们读完一行,发现是一句未完成语句,它们会继续往下读。使用缩进也是很好的习惯,当一些语句与上面的一两句语句有从属关系时,使用缩进能使程序更易读,方便程序员进行编写或修改工作。

循环体for (变量=初始值; 循环条件; 变量累加方法) 语句;
本语句的作用是重复执行语句,直到循环条件为 false 为止。它是这样运作的:首先给变量赋初始值,然后*判断循环条件(应该是一个关于变量的条件表达式)是否成立,如果成立就执行语句,然后按变量累加方法对变量作累加,回到*处重复,如果不成立就退出循环。这叫做for循环。下面看看例子。for (i = 1; i 10; i++) document.write(i);
本语句先给 i 赋初始值 1,然后执行 document.write(i)语句(作用是在文档中写 i 的值,请参越对象化编程一章);重复时 i++,也就是把 i 加 1;循环直到 i10 不满足,也就是 i=10 时结束。结果是在文档中输出了123456789。

和 if 语句一样,语句只能是一行语句,如果想用多条语句,你需要用语句块。

与其他语言不同,JavaScript 的 for 循环没有规定循环变量每次循环一定要加一或减一,变量累加方法可以是任意的赋值表达式,如 i+=3、i*=2、i-=j 等都成立。

提示 适当的使用 for 循环,能使 HTML 文档中大量的有规律重复的部分简化,也就是用 for 循环重复写一些 HTML 代码,达到提高网页下载速度的目的。不过请在 Netscape 中重复进行严格测试,保证通过了才好把网页传上去。作者曾试过多次因为用 for 循环向文档重复写 HTML 代码而导致 Netscape猝死。IE 中绝对没有这种事情发生,如果你的网也是只给 IE 看的,用多多的 for 也没问题。

除了 for 循环,JavaScript 还提供 while 循环。while (循环条件) 语句;
比 for 循环简单,while 循环的作用是当满足循环条件时执行语句。while 循环的累加性质没有 for 循环强。语句也只能是一条语句,但是一般情况下都使用语句块,因为除了要重复执行某些语句之外,还需要一些能变动循环条件所涉及的变量的值的语句,否则一但踏入此循环,就会因为条件总是满足而一直困在循环里面,不能出来。这种情况,我们习惯称之为死循环。死循环会弄停当时正在运行的代码、正在下载的文档,和占用很大的内存,很可能造成死机,应该尽最大的努力避免。

break 和 continue

有时候在循环体内,需要立即跳出循环或跳过循环体内其余代码而进行下一次循环。break 和 continue 帮了我们大忙。

break;

本语句放在循环体内,作用是立即跳出循环。

continue;

本语句放在循环体内,作用是中止本次循环,并执行下一次循环。如果循环的条件已经不符合,就跳出循环。

for (i = 1; i 10; i++) {
  if (i == 3 || i == 5 || i == 8) continue;
  document.write(i);
}

输出:124679。

switch 语句

如果要把某些数据分类,例如,要把学生的成绩按优、良、中、差分类,我们可能会用 if 语句:if (score = 0 && score 60) {
  result = 'fail';
} else if (score 80) {
  result = 'pass';
} else if (score 90) {
  result = 'good';
} else if (score = 100) {
  result = 'excellent';
} else {
  result = 'error';
}

看起来没有问题,但使用太多的 if 语句的话,程序看起来有点乱。switch 语句就是解决这种问题的最好方法。switch (e) {
  case r1: (注意:冒号)
    ...
    [break;]
  case r2:
    ...
    [break;]
  ...
  [default:
    ...]
}

这一大段的作用是:计算 e 的值(e 为表达式),然后跟下边case后的 r1、r2比较,当找到一个相等于 e 的值时,就执行该case后的语句,直到遇到 break 语句或 switch 段落结束(})。如果没有一个值与 e 匹配,那么就执行default:后边的语句,如果没有 default 块,switch 语句结束。

上边的 if 段用 switch 改写就是:switch (parseInt(score / 10)) {
  case 0:
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
    result = 'fail';
    break;
  case 6:
  case 7:
    result = 'pass';
    break;
  case 8:
    result = 'good';
    break;
  case 9:
    result = 'excellent';
    break;
  default:
    if (score == 100)
      result = 'excellent';
    else
      result = 'error';
}

其中 parseInt()方法是以后会介绍的,作用是取整。最后 default 段用的 if 语句,是为了不把 100 分当错误论(parseInt(100 / 10) == 10)。

来源:http://www.tulaoshi.com/n/20160220/1632830.html

延伸阅读
Hibernate简介 Hibernate寓意:Let Java objects hibernate in the relational database. Hibernate 是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据库之间的映射的ORM中间件。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Ja...
3.Java类型和本地类型对应 在如下情况下,需要在本地方法中应用java对象的引用,就会用到类型之间的转换: 1)java方法里面将参数传入本地方法; 2)在本地方法里面创建java对象; 3)在本地方法里面return结果给java程序。 分为如下两种情况: Java原始类型 像booleans、in...
标签: MySQL mysql数据库
MySQL是一个广受Linux社区人们喜爱的半商业的数据库。 MySQL是可运行在大多数的Linux平台(i386,Sparc,etc),以及少许非Linux甚至非Unix平台。 1、许可费用 MySQL的普及很大程度上源于它的宽松,除了略显不寻常的许可费用。MySQL的价格随平台和安装方式变化。MySQL的Windows版本(NT和9X)在任何情况下都不免费,而任何Unix变种(包括Li...
学习了一下JNI,发表文章的时候不知道该选什么好了,不知道JNI应该属于那个范畴^_^。 1.简介 JNI是Java Native Interface的缩写,它的设计目的是: The standard Java class library may not support the platform-dependent features needed by your application. You may already have a library or a...
标签: Web开发
使用 Cookies 我们已经知道,在 document 对象中有一个 cookie 属性。但是 Cookie 又是什么?某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些文件就称为 Cookie。 MSIE 帮助。一般来说,Cookies 是 CGI 或类似,比 HTML 高级的文件、程序等创建的,但是 JavaScript 也提供了对 Cookies 的很全面的访问权利。 在继续...

经验教程

195

收藏

72
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部