JavaScript 基础入门(一)——变量和赋值
JavaScript 基础入门(二)——赋值和表达式
上回书说到,在JS中有五种原始类型变量和三种对象类型变量,那么我们今天就继续看看剩下的几种原始类型变量都有些什么能力。
布尔值指代真、假,只有两个值,即true和false。在JS中,true和false都是保留字,在变量的命名时,不能使用保留字来命名。
const a=5;
var bool=(a==4);//bool的值为false;
布尔值常常出现在控制语句中,例如判断语句(我们会在语句中详细的讲到),如果要判断的条件为真,则执行相关的逻辑,如下所示:
var a=2;
if(a!=0){//a不等于0,括号内的值为true则执行该大括号内语句
a=a+1;
a=a*Math.PI;
}
else
{
a=a+2;
}
alert(a);//输出结果为9.42477796076938
除了逻辑判断,任意JS中的值都可以转换为布尔值,例如以下的值都可以转换为false:
undefined
null
0
-0
NaN
""//空字符串
在逻辑运算中,还有很重要的三个布尔运算符,分别对应逻辑中的与(&&)、或(||)、非(!)。(表中0代表false,1代表true)
值1 | 值2 | 与(&&) | 或(||) | 非(!)(对值1) |
---|---|---|---|---|
0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
通过这三个运算符,我们可以编写判断多个条件的程序,如下:
var math=99,chinese=95,English=88;
var Glory="";
if(math>=95 && chinese>=90 || !(English<95)){
Glory="三好学生";
}
else
{
Glory="继续努力";
}
null和undefined是我们最后介绍的两个原始类型,也是两个比较特殊的类型。这两个类型的共同点在于,都只有本身作为值,并且都表示了“空”的概念。
null是JS中的关键字,代表了空值。一般指数字、字符串和变量是无值的。
undefined代表了值的空缺,查询数组和对象时如果返回undefined,则表示查询的值不存在;如果函数返回undefined,则表示函数无返回值。
表达式赋予了变量完整的意义,有了表达式,变量才有可能发生改变。
var r = 1,S = 0;//这里也有表达式
S = Math.PI * Math.pow(r,2);//这是我们常见的表达式
当然,表达式并不是只有加减乘除几种,在计算机语言中,表达式是很丰富的。我们首先来认识一下原始表达式、算术表达式、赋值表达式、关系表达式和逻辑表达式这五类最基本的表达式类型。
原始表达式包括两种,字面量和变量。
var s = 2;
2;//数字字面量
"3.14";//字符串字面量
true;//布尔值字面量
[1,2,3];//数组字面量,数组在之后会讲到
s;//变量
算术表达式中,最熟悉的就是加减乘除余五种运算符构成的表达式了。
var a=1,b=2;
var result=0;
result=a+b;//加法
result=a-b;//减法
result=a*b;//乘法
result=a/b;//除法
result=a%b;//取余
其中的加法和取余比较特殊,在JS中,取余是可以对浮点数进行运算的,一般是将它们转换为整数(移动小数点)后运算,例如6.5%2.1=0.2。
而加法的特殊之处在于,它不仅能加数字还能加字符串,如下所示
console.log("1"+"+"+"123"+"="+"124");
上面我们讲的几个操作符,都属于二元算术运算符,接下来,就是一元运算符登场了。
一元算术运算符包括了“+”“-”“++”“–”四个,是只作用于一个单独的操作数,并且只返回一个新值的算术运算符。
var a=+"1";
var b=+2;//a=1,b=2;
var c=-"123";
var d=-(-123);//c=d=123;
"+“在JS中就是把操作数转换为数字后返回,而”-"在是在加号基础上改变运算符号。
"++“和”–"则更复杂一点。
"++"被叫做自增运算符,当操作对象的类型为数字时,相当于变量+1,而操作类型非变量时,将操作数变为数字后再+1;
var i=1;
++i;//i=2;
var j="123";
++j;//j=124;
同时,自增运算符的放置位置对程序也有影响。在操作数前面时,先将操作数加一,再使用操作数;而在操作数后面时,先使用操作数,再进行加一。
var i=0;
console.log(i,i++,i);
console.log(i,++i,i);
//最终结果为
//0 0 1
//1 2 2
"–“与”++“的区别就在于,”++“是加一,而”–"是减去一,其余规则不变。
赋值表达式中,最容易理解的就是等号(“=”)了;将待赋值的变量放在左侧,提供值的表达式放在右侧。
var a;
a=123;//a=123
其他的赋值表达式可以看作是在"=“的基础上,进行拓展而形成的**带操作的赋值运算”,例如”+=“、”-="……
var a=1,b=3;
a+=b;//a=a+b; a=4
a-=b;//a=a-b; a=1
a*=9;//a=a*b; a=9
a/=3;//a=a/3; a=3
a%=3;//a=a%3; a=0
关系表达式在各个编程语言中都是相当重要的,因为关系的判断可以成为循环和判断的条件,让机器有了判断的能力。关系表达式主要由比较运算符构成:“"=”!=“!==”<“”<=“”>“”>="等等,最后的返回值为布尔值。
var a=123,b='123',c=12,d=null;
a==b;//true "=="用来判断两者是否相等,且是不严格判断,即null==undefined;字符串和数字比较时,若字符串由全数字构成将转换为数字;
a!=b;//false "!="是"=="的反义,用来判断两者是否不相等且不严格判断;
a===b;//false "==="用于判断两者是否严格相等;
a!==b;//true "!=="是"==="的反义,用于判断两者是否严格不相等。
d==undefined;//true
d===undefined;//false
a>=b;//true ">=""<="">""<"与数学中均一致,且JS会将操作数转换;
//转换规则如下:
//如果操作数为对象,将用valueof()函数对对象进行转换,再尝试使用toString(),将其转换为原始值
//如果比较双方为字符串,JS将逐位按照字母表顺序进行比较
//如果两者为数字,且其中一个为NAN,返回false
逻辑表达式即逻辑运算符构成的表达式,包括与(&&)、或(||)、非(!)三种,具体可见上文布尔值处有介绍。
学习了表达式以后,可以尝试编写一个简单的计算器,并且在浏览器中现实出来,为了简化现实的步骤,可以在下方的代码中自行添加一定的代码,完成加法(其他运算可以自己添加)的功能。
DOCTYPE html>
<html>
<head>
head>
<body>
<h1>结果输出:h1>
<script id="js">
var a=prompt("第一个变量","a");
var b=prompt("第二个变量","b");
var Numa=new Number(a);
var Numb=new Number(b);
//在此句以下更改代码
//请使用变量Numa,Numb
var result = null;
document.write(""
);
document.write(a+"+"+b+"="+result);//此句为输出
document.write("");
script>
body>
html>