JavaScript语言编程

简介:

 JavaScript

  --2013103023:10:20

1  变量的定义

虽然JavaScript支持变量未经定义直接使用,但推荐进行变量定义,否则变量的生命周期难以确定。

在定义变量时,因为JavaScript为弱类型语言,所以不需要指定变量类型,只需要指定变量名称即可,也可以为变量赋初始值。定义变量时可以使用var关键字。

注意:因为JavaScript代码总是在同一网页内有效,并不能跨网页运行,所以也不需要定义类似于Java语言中的访问修饰符(public、private等)。

JavaScript变量的命名规则与Java相似,只能包含数字、字母、下画线和$符号,大小写敏感,不可以使用JavaScript的关键字和保留字。

例07_2.html

1. <html> 

2. <head> 

3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

4. <script type="text/javascript"> 

5.     var a;      //定义变量  

6.     var b = 3;  //定义变量并赋初始值  

7.     var c = 'String'd = "String"; //定义多个变量  

8. </script> 

9. </head> 

10. <body> 

11. </body> 

12. </html> 

 

7.3.2  变量的类型

虽然不能在定义变量时指定变量类型,但是JavaScript会根据变量的值自动决定类型,JavaScript中常见的内置变量类型如下。

数字型:可以存储小数或整数。

布尔型:可以存储true或false。

字符串:属于引用类型,可以存储字符串。

数组:属于引用类型,存储多项数据。

如果要将字符串转换为数字类型,可以使用parseInt或parseFloat方法,如果无法转换为数字,则JavaScript会返回特殊值"NaN(Not a Number)",如下所示:

例07_3.html

1. <html> 

2. <head> 

3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

4. <script type="text/javascript"> 

5.     var a = 3;  

6.     var b = "3";  

7.     var c = a + b;          //结果是33  

8.     var d = a + parseInt(b);    //结果是6  

9.     var e = a + (b - 0);        //结果是6  

10.     var f = parseInt('a');      //结果是NaN  

11. </script> 

12. </head> 

13. <body> 

14. </body> 

15. </html> 

注释与特殊符号

JavaScript语言中的注释与Java语言中的注释规则相同,支持单行注释(//)与多行注释(/*…*/),注意不能在JavaScript内部使用HTML语言中的"<!- -->"注释。在JavaScript中字符串可以使用双引号或单引号引起来,在不引起冲突的情况下可以混用,也可以使用反斜杠进行转义,如下例所示:

例07_4.html 

1. <html> 

2. <head> 

3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

4. <script type="text/javascript"> 

5.     //a的值为It's mine.  

6.     var a = "It's mine.";  

7.     //b的值为he say : "good".  

8.     var b = 'he say : "good".';  

9.     //c的值he say : "It's good".  

10.     var c = 'he say : "It\'s good".';  

11. </script> 

12. </head> 

13. <body> 

14. </body> 

15. </html> 

运算符

运算符与表达式基本与Java相同,常用的运算符如表7-1所示(优先级自上而下)。

表7-1  常用的运算符

运算符

使用格式

描  述

括号

(x)、[x]

中括号表示数组的下标

逻辑反

!x

返回与x(布尔值)相反的布尔值

自加/自减

x++、x--

x自加、自减1,与Java相同,运算后++或--

++x、--x

x自加、自减1,与Java相同,运算前++或--

算术运算符

x*y、x/y、x%y

乘、除、取模

x+y、x-y

加、减

比较运算符

x<y、x<=y、

x>y、x>=y、

x==y、x!=y

x===y

x与y进行对比,并返回true或false3

其中3个等号(===)表示同时比较值和类型

逻辑运算符

x&&y

x和y同为true,则返回true,否则返回false

x||y

x和y任一为true,则返回true,否则返回false

条件运算符

z?x:y

表达式z为true,返回x,否则返回y

赋值运算符

x=y

把y赋值给x

符合运算符

x+=y 

x-=y

x*=y 

x/=y 

x%=y

x加、减、乘、除、模y,结果赋值给x

7.4   JavaScript中的流程控制语句(1

JavaScript语言中的流程控制语句与Java语言中几乎完全一致,分支流程可以使用if else结构或switch结构,循环流程可以使用for或while循环,具体语法如下。

1if语句的语法结构

if语句的语法结构如下:

1. if (条件表达式A) {  

2. //条件表达式Atrue,所执行的代码块  

3. } else if(条件表达式)B {  

4.     //条件表达式Btrue,所执行的代码块  

5. } else {  

6.     // 条件表达式A和条件表达式B都为false,所执行的代码块  

7. }  

2switch语句的语法结构

switch语句的语法结构如下:

1. switch (表达式) {  

2.    case 1 :  

3.        //表达式与值1匹配时,所执行的代码块  

4.         break;  

5.    case 2 :  

6.        //表达式与值2匹配时,所执行的代码块  

7.         break;  

8.    default :  

9.        //所有case值都与表达式不匹配时,所执行的代码块  

10. }  

3for语句的语法结构

for语句的语法结构如下:

1. for (初始化语句循环判断条件循环执行语句) {  

2.        //循环体   

3. }  

4while语句的语法结构

while语句的语法结构如下:

1. while (循环判断条件) {  

2. //循环体     

3. }  

5dowhile语句的语法结构

do…while语句的语法结构如下:

1. do {  

2. //循环体     

3. } while (循环判断条件);  

6.综合演示

下例综合使用各种流程结构通过JavaScript动态在页面中生成一个隔行换色的HTML表格,其中用到了document.write()方法,该方法用于向HTML页面中输出内容。

例07_5.html

1. <html> 

2. <head> 

3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

4. <script type="text/javascript"> 

5.     //rows为表格的行数,cols为表格的列数  

6.     var rows = 6;  

7.     var cols = 8;  

8.     document.write('<table width="100%" border="1">');  

9.     document.write('<caption>动态生成表格</caption>');  

10.     document.write('<tbody>');  

11.     for (var row = 0; row < rows; row++) {  

12.         if (row % 2 == 0) {  

13.             document.write('<tr bgcolor="#cccccc">');  

14.         } else {  

15.             document.write('<tr>');           

16.         }  

17.         for (var col = 0; col < cols; col++) {  

18.             document.write('<td>' + col + '</td>');  

19.         }  

20.         document.write('</tr>');          

21.     }  

22.     document.write('</tbody>');  

23.     document.write('</table>');  

24. </script> 

25. </head> 

26. <body> 

27. </body> 

28. </html> 

执行代码,结果如图7-2所示。

 

图7-2  代码在IE浏览器中的显示结果

JavaScript中的常用方法

JavaScript中提供了很多常用的方法,如上例中用到的document.write方法,现介绍3个用于与用户交互的方法,如表7-2所示。

表7-2  3个用于与用户交互的方法

方法名

作  用

参数与返回值

alert

显示消息对话框

接收二个字符串参数,用于显示消息,无返回值

confirm

显示确认对话框

接收二个字符串参数,用于显示提示

消息,返回boolean类型的值,代表用户的选择

prompt

显示输入对话框

接收两个字符串参数,第一个用于显示

提示消息,第二个用于设置默认值(可省略),

返回用户的输入(如用户取消输入返回null)

请注意这3个方法显示的对话框都是模态对话框,即会停止当前脚本的运行直到用户关闭对话框为止,下面的例子综合使用了这3个方法

例07_6.html:

1. <html> 

2. <head> 

3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

4. <script type="text/javascript"> 

5.     alert("现在演示alertconfirmprompt方法");  

6.     var name = prompt("请输入您的姓名", "匿名");  

7.     var flag = confirm("请确认您的姓名:" + name);  

8.     if (flag) {  

9.         alert('确认无误!');  

10.     } else {  

11.         alert('确认失败');  

12.     }  

13. </script> 

14. </head> 

15. <body> 

16. </body> 

17. </html> 

执行代码,结果如图7-4所示。

 

图7-4  代码在IE浏览器中的显示结果

2.自定义方法

JavaScript语言中的自定义方法与Java语言有较大的不同,第一JavaScript中没有方法修饰符,所有方法都是本页面内可以访问;第二由于JavaScript是弱类型语言,所以不需要声明方法的返回值类型;第三JavaScript中的方法不支持重载,但是支持类似于Java中变长参数的特性。定义一个方法的语法如下:

1. function 方法名 ( 参数1, 参数2, … ) {  

2. //函数体     

3. return 返回值;     

4. }  

JavaScript中的方法(2)

下例演示了通过定义方法计算两个数的和:

例07_7.html

1. <html> 

2. <head> 

3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

4. <script type="text/javascript"> 

5.     function add(a, b) {  

6.         //如果不通过parseInt方法转换为数字,会进行字符串的连接  

7.         var c = parseInt(a) + parseInt(b);  

8.         return c;  

9.     }  

10.       

11.     var a = prompt("请输入第一个数", 0);  

12.     var b = prompt("请输入第二个数", 0);  

13.     //请注意变量的作用范围  

14.     var c = add(a, b);  

15.     alert("计算结果是:" + c);  

16. </script> 

17. </head> 

18. <body> 

19. </body> 

20. </html> 

如果想计算不确定数目的若干个数字的和,就可以使用JavaScript中的一个特殊数组,名为arguments,这个数组用来保存调用方法时传递的所有参数,如下例所示:

例07_8.html

1. <html> 

2. <head> 

3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

4. <script type="text/javascript"> 

5.     function add() {  

6.         //获取arguments数组的长度  

7.         var length = arguments.length;  

8.         var c = 0;  

9.         for (var i = 0; i < length; i++) {  

10.             c += parseInt(arguments[i]);  

11.         }  

12.         return c;  

13.     }  

14.       

15.     document.write("<p>无参数 = " + add());  

16.     document.write("<p>1 = " + add(1));  

17.     document.write("<p>1,3 = " + add(1,3));  

18.     document.write("<p>1,3,5 = " + add(1,3,5));  

19.     document.write("<p>1,3,5,7,9 = " + add(1,3,5,7,9));  

20. </script> 

21. </head> 

22. <body> 

23. </body> 

24. </html> 

执行代码,结果如图7-5所示。 

 

图7-5  代码在IE浏览器中的显示结果

JavaScript中的方法(3)

JavaScript中函数的参数还有更灵活的运用方式,如下例所示:

例07_9.html

1. <html> 

2. <head> 

3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

4. <script type="text/javascript"> 

5.     function output(times, char, end) {  

6.         var s = '';  

7.         for (var i = 0; i < times; i++) {  

8.             if (char) {  

9.                 s+=char;  

10.             } else {  

11.                 s+='*';  

12.             }  

13.         }  

14.         document.write(s);  

15.         if (end) {  

16.             document.write(end);              

17.         } else {  

18.             document.write("<br/>");                          

19.         }  

20.     }  

21.       

22.     output(20);  

23.     output(20, "O");  

24.     output(20);  

25.     output(20, "H", "<hr/>");  

26.     output(20, '<img src="07_8.png"/>', "<hr/>");  

27. </script> 

28. </head> 

29. <body> 

30. </body> 

31. </html> 

执行代码,结果如图7-6所示。

 

图7-6  代码在IE浏览器中的显示结果

注意:因为JavaScript中方法的参数长度是可变的,所以JavaScript并不支持类似于Java语言的方法重载特性。

目录
相关文章
|
6月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
276 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
5月前
|
JavaScript 前端开发 Java
JavaScript:编程宇宙的多面闪耀之星-揭秘 JavaScript,编程界的全能霸主如何炼成?-优雅草卓伊凡
JavaScript:编程宇宙的多面闪耀之星-揭秘 JavaScript,编程界的全能霸主如何炼成?-优雅草卓伊凡
129 24
JavaScript:编程宇宙的多面闪耀之星-揭秘 JavaScript,编程界的全能霸主如何炼成?-优雅草卓伊凡
|
6月前
|
JavaScript Ubuntu Linux
如何在阿里云的linux上搭建Node.js编程环境?
本指南介绍如何在阿里云Linux服务器(Ubuntu/CentOS)上搭建Node.js环境,包含两种安装方式:包管理器快速安装和NVM多版本管理。同时覆盖全局npm工具配置、应用部署示例(如Express服务)、PM2持久化运行、阿里云安全组设置及外部访问验证等步骤,助你完成开发与生产环境的搭建。
|
JavaScript 前端开发 编译器
解锁JavaScript模块化编程新纪元:从CommonJS的基石到ES Modules的飞跃,探索代码组织的艺术与科学
【8月更文挑战第27天】随着Web应用复杂度的提升,JavaScript模块化编程变得至关重要,它能有效降低代码耦合度并提高项目可维护性及扩展性。从CommonJS到ES Modules,模块化标准经历了显著的发展。CommonJS最初专为服务器端设计,通过`require()`同步加载模块。而ES Modules作为官方标准,支持异步加载,更适合浏览器环境,并且能够进行静态分析以优化性能。这两种标准各有特色,但ES Modules凭借其更广泛的跨平台兼容性和现代语法逐渐成为主流。这一演进不仅标志着JavaScript模块化的成熟,也反映了整个JavaScript生态系统的不断完善。
118 3
|
12月前
|
存储 JavaScript 前端开发
JavaScript编程实现tab选项卡切换的效果+1
JavaScript编程实现tab选项卡切换的效果+1
|
7月前
|
JavaScript 前端开发 IDE
【编程向导】Js与Ts差异详解:选择与权衡
JavaScript 一直是 Web 开发的基石,以其灵活性和动态性著称,但其松散类型可能导致大型项目中出现难以调试的错误。TypeScript 作为 JavaScript 的超集,通过引入静态类型系统,提供了更高的类型安全性和更好的工具支持,尤其适合大型团队和复杂项目。本文详细对比了 JavaScript 和 TypeScript 的优缺点,并提供了实际代码示例,帮助开发者根据项目需求选择合适的工具。
730 2
|
10月前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
239 4
|
10月前
|
前端开发 JavaScript 持续交付
提高JavaScript编程效率
提高JavaScript编程效率
117 3
|
10月前
|
自然语言处理 JavaScript 前端开发
JavaScript闭包:解锁编程潜能,释放你的创造力
【10月更文挑战第25天】本文深入探讨了JavaScript中的闭包,包括其基本概念、创建方法和实践应用。闭包允许函数访问其定义时的作用域链,常用于数据封装、函数柯里化和模块化编程。文章还提供了闭包的最佳实践,帮助读者更好地理解和使用这一强大特性。
82 2
|
11月前
|
XML 监控 JavaScript
JavaScript 语言对企业上网监控的技术支持
在数字化企业环境中,上网监控对企业信息安全和提升员工效率至关重要。JavaScript 作为广泛应用的脚本语言,提供了强大的技术支持,包括数据获取与分析、与服务器端交互、监控页面加载时间和网络活动,助力企业有效管理上网行为,保障信息安全。
85 6