JavaScript编程全知道:从基础到框架的深度解析
1. 常量与条件表达式
在JavaScript编程里,并非所有变量在脚本处理期间都需要改变值。有时候,变量只是引用其他值的便捷方式。虽然JavaScript本身没有内置常量的概念,但我们可以通过特定的命名约定来创建常量,使其与普通变量易于区分。按照传统语言的惯例,常量名使用全大写字母,不同单词间用下划线分隔,示例如下:
var COUNTY = “United States of America”;
var PI = 3.14159;
var VERSION_NUMBER = “8.02”;
常量在代码中的使用方式和变量一样,因为本质上它就是一个大写命名的变量。
JavaScript提供了三种语句来执行条件逻辑:
-
if语句
:当要在测试表达式为真时运行部分代码,可使用if语句。其基本结构如下:
if ( condition ) {
// code to execute if condition is true
}
例如:
secretcode = prompt( “Enter the secret code.”, “” );
if ( secretcode == “moops” ) {
alert( “You won the contest.” );
}
这里要注意条件表达式中的双等号(==),它用于比较表达式两边的值,而单等号(=)用于给变量赋值。
-
if…else语句
:与if语句类似,但还能在表达式为假时运行代码。结构如下:
if ( condition ) {
// code to execute if condition is true
}
else {
// code to execute if condition is false
}
示例:
if ( document.title == ‘Home page’ ) {
alert( “Welcome home” );
}
else {
alert( “Here’s where you are instead “ + document.title );
}
- switch语句 :if和if…else语句适合评估单个值,若要检查多个值,switch语句就派上用场了。其基本结构如下:
switch ( expression ) {
case label1:
// code to be executed if expression equals label1
break;
case label2:
// code to be executed if expression equals label2
break;
default:
// code to be executed if expression is different
// from both label1 and label2
}
例如:
var d = new Date()
var hr = d.getHours()
switch ( hr ) {
case 8 :
document.write( “Good morning sunshine.” );
break;
case 12 :
document.write( “Lunch time!” );
break;
case 15 :
document.write( “Afternoon tea with the queen.” );
break;
case 22 :
document.write( “Time to hit the sack.” );
break;
default:
document.write( “Come back later.” );
}
switch语句会评估条件,查看结果是否等于第一个case值。若相等,执行该case语句内的代码;break语句用于停止switch语句继续评估后续的case语句;若没有匹配项,则执行default语句。
2. 循环结构
在JavaScript开发中,经常需要多次循环执行任务,直到特定条件改变。JavaScript提供了两种循环结构:
-
for循环
:会循环执行代码块特定的次数。示例如下:
for ( var i=1;i<=10;i++) {
document.write( “Pass number “ + i + “<br/>” );
}
其各部分解释如下:
-
初始化语句
:
var i=1
声明并使用一个名为i的计数器变量,初始值为1。
-
条件
:
i<=10
是每次循环都会评估的条件,只要i的值小于等于10,条件就为真。
-
更新语句
:
i++
是每次循环后执行的更新语句,这里使用
++
将i的值加1。
这个for循环会将括号内的代码块重复执行十次,第十一次循环时条件为假,脚本继续执行下一行代码。输出结果如下:
Pass number 1
Pass number 2
Pass number 3
Pass number 4
Pass number 5
Pass number 6
Pass number 7
Pass number 8
Pass number 9
Pass number 10
通常,可将for循环结构复制粘贴到脚本中,多数情况下只需更新计数器和要处理的代码,示例如下:
for ( var i=1;i<=10;i++) {
// code
}
也可以基于当前文档中的链接总数进行循环,示例如下:
for ( var i=0;i<document.links.length;i++ ) {
processLink( document.links[i] );
}
- while循环 :只要条件为真,就会循环执行代码块。其通用形式比for循环简单:
while( condition ) {
// code to process when condition is true
}
示例:
while( items > 10 ) {
document.writeln( “Current item count is “ + items );
processOrder( items ); // Fictional custom function
items++;
}
在此示例中,只要
items
变量小于10,代码块就会循环执行。在代码块内,会输出当前项目计数,然后调用一个虚构的
processOrder()
函数处理订单状态,最后将
items
变量的值加1。
3. 函数
函数是一组有名称的JavaScript命令和语句,需由事件或脚本显式调用才能执行。可将函数看作处理事物的工厂,它能接受可选的输入值(参数),执行特定处理,还可选择返回一个值给调用它的事件处理程序或代码行。
定义函数的结构如下:
function myFunctionName( [param1,param2...] ) {
// Function code goes here
}
例如,创建一个名为
addCookie()
的函数来创建cookie,该函数接受三个参数,最后一个是可选的:
function addCookie( cookieName, cookieValue, days ) {
if ( days ) {
var dt = new Date();
dt.setTime( dt.getTime()+ ( days*24*60*60*1000 ) );
var expdate = “; expires=” + date.toGMTString();
}
else {
var expdate = ””;
}
document.cookie = cookieName + ”=” + cookieValue + expdate + ”; path=/”;
}
调用该函数的语句如下:
addCookie( ‘username’, ‘rayman’, 90 );
addCookie()
函数会根据传入的参数处理代码并创建cookie,此例中不会向调用代码的语句返回结果,函数执行完任务后就会退出。
再看一个使用
return
命令将值返回给调用语句的例子:
function calcTotal( netTotal ) {
var t = ( netTotal * .05 );
return t;
}
也可将代码合并为一行:
return ( netTotal * .05 );
。当遇到
return
命令时,函数停止执行,并将程序控制权返回给调用它的语句。所以,若在
return
命令后放置语句,解释器会忽略它们。
对象的方法本质上和函数一样,区别在于方法是为对其关联对象执行操作而设计的,而函数是更通用的代码块,可用于执行任何操作。
4. 运算符
JavaScript运算符就像旧时的电话接线员,用于连接不同的JavaScript代码片段。可使用运算符进行数字相加、连接字符串、给变量赋值或评估表达式等操作。以下是JavaScript中的主要运算符:
| 运算符类型 | 运算符 | 示例 | 描述 |
| — | — | — | — |
| 赋值运算符 | = | x=y | 将y的值赋给x |
| 赋值运算符 | += | x+=y | 等同于x=x+y |
| 赋值运算符 | -= | x-=y | 等同于x=x-y |
| 赋值运算符 |
= | x
=y | 等同于x=x
y |
| 赋值运算符 | /= | x/=y | 等同于x=x/y |
| 赋值运算符 | %= | x%=y | 等同于x=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 | x大于等于y |
| 比较运算符 | ?: | x=(y<5) ? –5 : y | 若y小于5,将 -5 赋给x;否则将y赋给x |
| 逻辑运算符 | && | if ( x > 3 && y=0 ) | 逻辑与 |
| 逻辑运算符 | || | if ( x>3 || y=0 ) | 逻辑或 |
| 逻辑运算符 | ! | if !( x=y) | 逻辑非 |
| 数学运算符 | + | x+2 | 加法 |
| 数学运算符 | - | x-3 | 减法 |
| 数学运算符 | * | x
2 | 乘法 |
| 数学运算符 | / | x/2 | 除法 |
| 数学运算符 | % | x%2 | 取模(除法余数) |
| 数学运算符 | ++ | x++ | 自增(等同于x=x+1) |
| 数学运算符 | – | x– | 自减(等同于x=x-1) |
在早期的JavaScript开发中,为防止代码影响不支持脚本的旧浏览器处理文档,通常会用HTML注释包裹脚本代码:
<script>
<!--
// JavaScript code
-->
</script>
但现在所有浏览器都能处理
script
元素,而且在
script
标签内使用HTML注释违反XHTML标准,编写JavaScript时应避免这种做法。
5. JavaScript库和框架的崛起
随着Web技术的发展,JavaScript从早期的纯代码编程,发展到如今拥有丰富的库和框架。开发者转向使用库和框架主要有两个原因:
-
代码更简单高效
:许多框架将核心语言功能封装在快捷方法中,减少代码量,简化原本可能复杂重复的脚本。
-
避免重复造轮子
:现有的库和框架解决了开发者反复遇到的技术问题,可直接利用其他专家的成果。
6. Prototype框架的使用
Prototype是一个专注于面向对象扩展和提供流行Ajax库的JavaScript框架,支持多种主流浏览器。使用Prototype的步骤如下:
1. 从
www.prototypejs.org
下载最新版本的
.js
库文件,并保存到硬盘。例如,版本为1.6.1的文件名为
prototype-1.6.1.js
。
2. 将该文件复制为
prototype.js
,用于链接到网页。这样,当Prototype更新时,只需更新
prototype.js
文件,无需更新整个网站的引用。
3. 在HTML文件中使用
script
标签引入该文件:
<script type=”text/javascript” src=”scripts/prototype.js”/>
Prototype提供了几个实用的快捷方法:
-
$()方法
:被称为“瑞士军刀”,可作为
document.getElementById()
的快捷替代。例如,获取
p1
元素的引用:
var para = $(“p1”);
若要根据元素的id值获取元素数组,可添加多个id值:
var eArr = $(“container”, “header1”, “p1”);
使用普通JavaScript的等效代码如下:
var co = document.getElementById(“container”);
var he = document.getElementById(“header1”);
var pa = document.getElementById(“p1”);
var eArr = new Array( co, he, pa);
-
$$()方法
:可作为
document.getElementsByTagName()的快捷替代。例如,获取示例文件中所有的p元素:
var pArr = $$(“p”); // returns p1, p2, p3, and p4
也可使用CSS选择器语法选择元素,如获取
container
div
内的所有
p
元素:
var pArr = $$(“#container p”); // returns p1, p2, p3, and p4
获取所有类名为
special
的段落:
var pArr = $$(“p.special”); // returns p1 and p4
-
$F()方法
:返回任何表单字段的值。例如,获取表单中
select元素的值:
alert(“You selected the following “ + $F(“menu”));
获取文本输入框的值:
alert(“I think your name is “ + $F(“fullName”));
- Try.these()方法 :接受多个函数调用作为参数,返回第一个不抛出错误的函数调用结果。例如:
var result = Try.these(
supportVersion9(),
supportVersion8(),
supportLegacy()
)
if (result != undefined)
{
// do something
}
此方法在确定浏览器对特定功能的支持时非常有用。
通过以上对JavaScript基础语法、循环结构、函数、运算符以及Prototype框架的介绍,我们可以看到JavaScript从基础到高级应用的丰富内容。无论是处理简单的条件逻辑,还是使用强大的框架简化开发,JavaScript都展现出了其灵活性和实用性。希望这些内容能帮助你更好地掌握JavaScript编程。
JavaScript编程全知道:从基础到框架的深度解析
7. jQuery框架的探索
jQuery是另一个广受欢迎的JavaScript框架,它使得HTML文档遍历、事件处理、动画效果和Ajax操作变得更加简单。以下是jQuery的一些常见用法:
-
选择器
:jQuery提供了强大的选择器功能,能够快速定位HTML元素。
-
元素选择器
:选择所有的段落元素。
$("p").css("color", "red");
-
ID选择器
:选择ID为
myDiv的元素。
$("#myDiv").hide();
-
类选择器
:选择所有类名为
special的元素。
$(".special").addClass("highlight");
- 事件处理 :可以轻松地为元素绑定事件。
$("button").click(function() {
alert("Button clicked!");
});
- 动画效果 :实现各种动画效果。
$("#box").animate({
left: '250px',
opacity: '0.5',
height: '150px',
width: '150px'
});
- Ajax操作 :简化了与服务器的异步通信。
$.ajax({
url: "test.php",
method: "GET",
success: function(result) {
$("#result").html(result);
}
});
8. 其他JavaScript库和框架
除了Prototype和jQuery,还有许多其他优秀的JavaScript库和框架,它们各自有不同的特点和适用场景。
-
React
:由Facebook开发,用于构建用户界面的JavaScript库。它采用虚拟DOM和组件化开发的思想,提高了应用的性能和可维护性。
-
Vue.js
:渐进式JavaScript框架,易于上手,且具有高效的响应式系统。适合从简单的交互到复杂的单页面应用开发。
-
Angular
:Google维护的一个完整的前端框架,提供了丰富的功能和工具,如依赖注入、路由等,适合大型项目的开发。
9. 总结与展望
JavaScript在Web开发领域的发展日新月异,从基础的语法到强大的库和框架,为开发者提供了丰富的工具和选择。以下是对整个JavaScript编程的总结:
-
基础语法是基石
:常量、条件表达式、循环结构、函数和运算符等基础语法是编写JavaScript代码的基础,需要熟练掌握。
-
库和框架提高效率
:使用Prototype、jQuery等库和框架可以大大提高开发效率,减少重复劳动。
-
选择合适的工具
:根据项目的需求和特点,选择合适的库和框架,如小型项目可选择Vue.js,大型项目可考虑Angular。
未来,JavaScript有望在更多领域得到应用,如移动应用开发、服务器端编程等。随着技术的不断进步,相信JavaScript会继续发挥重要作用,为开发者带来更多的惊喜。
10. 流程图示例
下面是一个简单的JavaScript条件判断流程图,使用mermaid语法表示:
graph TD;
A[开始] --> B{条件判断};
B -- 真 --> C[执行代码块1];
B -- 假 --> D[执行代码块2];
C --> E[结束];
D --> E;
11. 操作步骤总结
为了方便大家回顾,这里总结一下前面提到的一些操作步骤:
-
使用Prototype框架
:
1. 从
www.prototypejs.org
下载最新版本的
.js
库文件。
2. 复制为
prototype.js
用于链接网页。
3. 在HTML文件中使用
script
标签引入。
-
使用jQuery选择器
:
1. 根据需求选择合适的选择器类型(元素、ID、类等)。
2. 使用选择器定位元素。
3. 对定位到的元素执行相应的操作(如样式修改、事件绑定等)。
希望通过这篇博客,能帮助大家全面了解JavaScript编程,从基础语法到高级框架的应用。在实际开发中,不断实践和探索,才能更好地掌握这门强大的编程语言。
476



被折叠的 条评论
为什么被折叠?



