javascript学习笔记(第二章语法学习续)

javascript学习笔记(第二章语法学习续)

一、操作
在上一节里,我们对javascript 的相关语法和语句进行了一些初步的了解,但是这些语句并不能完成一些相应的操作,如想要实现一些功能还需要对数据进行一些计算和处理,即操作。
1.1算数操作符
和C语言一样,javascript中的算数操作符就是加、减、乘、除。与C语言中不一样的是,在javascript中声明或者赋值给变量时,我们可以包含一定的操作,也就是赋值语句可以是算数表达式,这在C语言中是不合法的,例:
var total=1+(3-6)*6/2;
自然,我们也可以对变量进行操作,例:
var abc=9.7;
var cde=(abc-5)*6.3;
和C语言一样,在javascript中也提供了自增(++)自减(–)运算符,但这里的(+)有特殊的作用,它可以实现字符串之间的连接运算。我们知道在C语言中,字符串操作是有对应的操作函数的,这样对比来看在javascript中的操作要宽松简单很多。
上一节曾说过,javascript语言是一种弱类型语言,使用变量前可以不对其进行声明,赋值时声明操作自动进行,对于变量的类型也没有强制说明,所以连接运算符(+)在这里是可以连接字符串和数值的,在运算是,数值自动转换成字符串,例:
alert(“30”+50);//其返回值为“3050”
alert(30+50);//其返回值为80
二、条件语句
与C语言中的条件语句一样,在javascript中也可以使用条件语句,用来实现具有某种限制的操作。最常见的条件语句就是if语句,基本形式为:

if(condition)
{statements;}

当且仅当条件为真时,花括号里面的语句才执行,当然每一个if语句后都可以跟一个else语句,当所判断的条件为假时,else内的语句才能执行,例:

if(condition)
{statements;}
else
{statements;}

与c语言一样,当if所跟的条件语句只有一条时可以省略花括号,但为了使我们的程序更加简单已读,我们要求不省略花括号,养成良好的编程习惯。
2.1比较操作符
比较运算符即比较两个变量的大小关系的运算符。在javascript中比较运算符基本和C语言中的比较运算符一致,这里不再过多的赘述,我们只来看看两者之间不一样的地方,例:

var a="false";
var b="";
if(a==b)
{alert(a与b相等!);}

此条件语句的求值为true,因为相等运算符(==)认为空字符串与false是含义相同的,如果要进行比较严格的比较,我们这里引入一个新的比较运算符(===)。这个运算符不仅比较变量的值,而且会比较变量的类型,例:

var a="false";
var b="";
if(a===b)
{alert(a与b相等!);}

此时的条件语句求值为false,因为布尔型与字符串类型是完全不同的两种数据类型,是不相等的。与(===)相同,如若想要严格比较不相等,我们可以用(!==)符号进行判断比较。
2.2逻辑操作符
在javascript中,逻辑操作符的使用与C语言中的逻辑操作符一致。均配合条件语句使用,作为条件语句所需判断的条件使用。包括逻辑与(&&)、逻辑或(||)、逻辑非(!),这里再说一下逻辑非,它将所判断条件的布尔值取反计算。
三、循环语句
循环语句可以重复执行同一代码块,只要条件满足就会一直执行下去,直到条件不满足时才跳出循环。
3.1while循环

while(condition)
{statements;}

在使用while循环语句时,我们在循环体内要进行一定的操作,从而改变循环条件,否则循环将一直进行下去,程序也就没有什么价值了。
3.2do…while循环

do
{statements;}
whlie(condition);

此语句的特点是循环体至少执行一次,先执行循环再进行条件判断。
3.3for循环

for(initial condition;test condition;alter condition)
{statements;}

基本的使用方法和C语言中一致,不再多说。
四、函数
所谓函数就是在程序中需要多次使用的同一段代码,当我们需要实现某些功能时,就可以在程序中调用相应的函数,简单来理解,函数就是一段可以完成特定功能的短小脚本。在初学时我们就要养成良好的编程习惯,在调用一个函数前我们要对函数进行定义,也就是明确函数所能实现的功能。下面我们来看一个函数调用的例子:

function add(num1,num2)
{
var total=num1+num2;
alert(total);
}

上面例子是一个含有两个形参的函数,在使用时,我们需要把两个具体的数值或者字符串传递给这个函数,函数将对他们进行加和运算,当然我们可以在含有这个函数的脚本里的任意位置调用这个函数,例:

add(10,20);

运行结果如下
在这里插入图片描述
完整代码如下:
程序文件为test.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Just a test</title>
</head>
<body>
<script src="example.js"></script>
</body>
</html>

程序文件为example.js

function add(num1,num2)
{
var total=num1+num2;
alert(total);
}
add(10,20)

当然,我们如果能把结果返回给调用这个函数的语句,这个函数会更加有用,也就是说函数不仅可以通过形参接收数据,也可以返回数据,这样我们就可以把一个函数当成一个数据类型来使用,也就是把函数的调用结果赋给一个变量。返回一个函数的值需要用到return语句,例:

function add(num1,num2)
{
var total=num1+num2;
return total;
}
var a=100;
var b=300;
var c=add(a,b);
alert(c)

运行结果如下图:
在这里插入图片描述
为了养成良好的编程习惯,也便于区分变量名和函数名,提高程序的可读性,这里我们再统一一下变量名和函数名的命名方式,对于变量名,我们可以用下划线来分隔单词,对于函数名,我们采用驼峰式命名,即除了第一个单词首字母小写其他各个单词的首字母大写,我们将上个程序按照这个命名方式修改一下:

function jiaFaYunSuan(num1,num2)
{
var total=num1+num2;
return total;
}
var num_a=100;
var num_b=300;
var num_c=jiaFaYunSuan(num_a,num_b);
alert(num_c);

看起来规范很多哈!接下来我们将再说以下变量的作用域,这个其实跟C语言差不多的,但是还是比较重要,所以这里就再复习一下。
4.1变量的作用域
全局变量:声明后,我们便可以在脚本中任何位置,包括函数内部都可以使用;
局部变量:在函数内部声明,只能在函数内部使用,函数外部是无法使用的。
在一个具体的函数中,当声明变量前使用关键字var时,此变量就是局部变量,反之没有使用关键字var时,此变量就是全局变量。如果脚本里已经存在一个与全局变量同名的局部变量,全局变量的值会覆盖局部变量的值,例:

function jiaFaYunSuan(num1,num2)
{
total=num1+num2;
return total;
}
var num_a=100;
var num_b=300;
var total=70;
var num_c=jiaFaYunSuan(num_a,num_b);
alert(total);

脚本运行结果如下图:
在这里插入图片描述
从上面的例子我们看到局部变量的值由于调用了函数所以发生了变化。我们的本意是将函数计算的值返回给变量num_c,但是由于我们在函数内部声明的total为全局变量,函数便把名字为total的全局变量的值也改变了,所以更改以上的例子为:

function jiaFaYunSuan(num1,num2)
{
var total=num1+num2;
return total;
}
var num_a=100;
var num_b=300;
var total=70;
var num_c=jiaFaYunSuan(num_a,num_b);
alert(total);

运行结果如下图:
在这里插入图片描述
这个时候全局变量total的值就变成了安全的,函数的计算结果只在函数内部发生改变,外部的全局变量total值是不会改变的。所以我们在函数中声明变量时一定要将变量声明为局部变量,避免二义性产生。
五、对象(object)
对象是一个非常重要的数据类型,上一节我们已经在数组部分提到过,不过没有详细说明,这里我们把它单独拿出来说一下,加深一下印象。
对象是一种自包含的数据集合,简单来说:
对象=属性+方法
包含在对象里面的数据可以通过属性(property)和方法(method)两种方式访问,下面我们来简单区分一下属性和方法:
1.属性:隶属于某个特定对象的变量;
2.方法:只有某个特定对象才能够调用的函数。
在javascript中,属性和方法都通过“点”语法来访问。

object.property;
object.method();

假设动物(animal)为一个对象,外貌(appearance),性格(character)为其属性,访问其属性的方法如下:

animal.appearance;
animal.character;

假设动物这个对象还关联着跑(run),站立(stand)这两种方法函数,其方法的访问如下:

animal.run();
animal.stand();

为了使动物(animal)这个对象来描述一个特定的动物,我们需要创建一个特定的动物实例(instance),比如老虎和麻雀都是动物,但是他们却有不同的外貌和性格,也就是属性不同。因此老虎和麻雀就对应着两种不同的动物对象,虽然都是动物,但他们是不同的实例。
在我们给一个给定的对象创建实例时,我们需要用new关键字,例:

var tiger=new animal;
var bird=new animal;

当我们完成实例的创建后,我们便可以利用animal对象的属性来检索关于tiger和bird的信息了,例:

tiger.appearance;
tiger.character;
bird.character;
bird.appearance;

在javascript中已经提供了很多预先定义好的对象,我们可以直接拿来使用,这样的对象也称内建对象(native object)。
5.1内建对象(native object)
数组就是我们常见的内建对象,当我们用new关键字初始化一个数组时就是在创建一个Array对象的实例。

var animal=new Array();

当我们想要了解数组的长度为多少时,我们可以利用Array对象的length属性来获取这个信息,例:

animal.length;

这里我们再提几个常见的内建对象:Math,Date。
Math中的round方法可以把十进制数值舍入为一个与之最接近的整数,例:

var num=10.3674;
var num=Math.round(num);
alert(num);

运行结果如下图:
在这里插入图片描述

Date对象可以检索和存储与特定日期和时间有关的信息,当我们创建一个Data实例时,javascript中的解释器会自动使用当前时间和日期对它赋值和初始化,例:

var current_data=new Date();

5.2宿主对象(host object)
除了javascript运行环境中的对象以外,还有一些由游览器提供的预定义对象,这些对象就是宿主对象。
宿主对象包括Form,Image,Element,我们可以通过这些对象获取网页上的表格、图像、表单元素信息。其中有一个document对象可以访问网页上任何一个元素信息。这个以后我们再细说吧。
到现在关于javascript中的语法内容到这里就告一段落了,这些语法作为学习javascript的基础,我们需要时常翻看,还有很多细节的东西博主没有写,后续会在一些实例中体现,熟能生巧吧,坚持!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值