JavaScript 基础入门(二)——赋值和表达式

系列文章目录

JavaScript 基础入门(一)——变量和赋值
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)
00001
10010
01011
11110

通过这三个运算符,我们可以编写判断多个条件的程序,如下:

    var math=99,chinese=95,English=88;
    var Glory="";
    if(math>=95 && chinese>=90 || !(English<95)){
        Glory="三好学生";
    }
    else
    {
        Glory="继续努力";
    }

null和undefined

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("<p>");
            document.write(a+"+"+b+"="+result);//此句为输出
            document.write("</p>");
        </script>
    </body>
    
</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值