JavaScript语法基础:JS运算符

第1关:JavaScript知识训练-运算符

  • 1、在JavaScript中,两个整数进行除(/)运算,其结果也为整数。

    B、

    错误

  • 2、x={x:1};y={y:1};z=1;n='1’下面结果为true的是( )

    D、

    z == n

  • 3、假设val已经声明,且定义为任何数值。三元运算符 (val !== '0')?'define':'undefine';的返回值是( )

    A、

    define

  • 4、假设有如下代码,那么a(10)的返回结果是( ) function a(a){ a^=(1<<4)-1; return a; }

    A、

    5

  • 5、下面这段javascript代码,最后一句alert的输出结果是( ) var msg='hello'; for(var i=0;i<10;i++){ var msg = 'hello'+i*2+i; } alert(msg);

    C、

    hello189


    第2关:算术运算符
     

    任务描述

    本关任务:给定两个字符串变量,把它们转为数字后相除,拼接被除数、除数和余数为一个新的字符串。

    例如:a"5"b"3",则c为数字2,拼接后结果为字符串"532"

    a"23asdf"b"3fe",则c为数字2,拼接后结果为字符串"23asdf3fe2"

    相关知识

    JavaScript中的算术运算符除了数学中常见的加减乘除外,还有递增、递减和取余等。

    + - * / %运算符

    JavaScript中的加号除了具有数学中将两个数字相加的作用外,还能对字符串做连接操作。

    对两个数字相加和数学中一样,字符串相加就是拼接字符串的意思,比如Java+Script的结果是字符串JavaScript

    当字符串和数字相加时需要进行类型转换,数字会先转为字符串,然后再做字符串的拼接

字符串与数的转换

(1)parseInt()函数 parseInt()是系统内置函数,可可解析一个字符串,并第一个数字字符串返回一个整数。 语法格式为: parseInt(string, radix) 其中,string是被解析的字符串,radix是要解析的数字的基数。 当参数 radix 的值为 0或缺省时,parseInt() 会根据 string 来判断数字的基数。

例如: parseInt("123")的返回值为123 parseInt("4m6")的返回值为4 parseInt("a2")的返回值为NaN parseInt(12,16)的返回值为18

(2)toString()函数 toString()是Object对象的方法,用于将当前对象以字符串的形式返回。由于所有对象都"继承"了Object的对象实例,因此都可以使用该方法实现转换。 语法格式: object.toString( ) 例如: var num1 = 15; a = num1.toString(); var num2 = 10; b = num2.toString(); c = a + b c的输出结果为1512。

编程要求

本关的编程任务是补全右侧代码片段中BeginEnd中间的代码,完成函数mainJs(),具体要求如下: (1)将两个数字字符串参数ab转换为数字a1和b1; (2)计算a1除以b1的余数c

(3) 将abc分别转换为字符串;

  • 递增运算符和递减运算符

    递增运算符++表示对一个数做加1的操作,递减运算符--表示对一个数做减1的操作。

    ++符号在数字的左边还是右边会影响运算的顺序,当++在数的左边时,表示先对数加1,再返回加1后的结果。在右边时,表示先返回该数的值,再加1。下面的例子展示了这种区别。

    递减运算符--同理。

  • 当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
  • 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字
  • 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
  • 具体请参见后续测试样例

以下是测试样例:

测试输入: 100,9 预期输出: 10091

测试输入: -10,3 预期输出: -103-1

测试输入: 23as,3ss 预期输出: 23as3ss

编程要求

本关的编程任务是补全右侧代码片段中BeginEnd中间的代码,完成函数mainJs(),具体要求如下:

(1) 比较字符串ab的大小;

(2)使用if...else语句进行分支设计,如果a>b,则返回a逻辑与b的结果,否则返回a逻辑取反的结果(返回时使用return);

 

 

  • function mainJs(a,b) {
    //请在此处编写代码
    /***********Begin**********/
    var a;
    var b;
    var c;
    var d;
    var e;
    d=parseInt(a);
    e=parseInt(b);
    c=d%e;//c为数字类型,需要转换为字符串类型
    String(c);
    
    /*********End************/
        return a+b+c;
    }
    


    第3关:比较和逻辑运算符

    任务描述

    本关任务:判断两个字符串的大小,第一个大于第二个则返回两者逻辑相与的结果,否则返回第二个逻辑取反的结果。

    例如:a为字符串"d"b为字符串"b",因为字符串"d"大于字符串"b",所以返回"d"逻辑与"b",即字符串"b"

    相关知识

    比较运算符

    JavaScript中的比较运算符有==,===,>,<,!=,>=等。

  • ==叫做相等,===叫做严格相等。双等号和三等号的区别是:三等号要求数据类型和值都相等,双等号只需要值相等即可,相等包含严格相等。
  • 从比较过程来看,严格相等先比较两个对象的数据类型是否相等,不相等则结束比较,返回false,相等在数据类型不同时,尝试进行数据类型转换,例如,在字符串和数字的比较中,字符串会被转为数字再比较;布尔值true转为数字1,布尔值false转为数字0

    如果数据类型相同,相等和严格相等都会直接比较值,值相等返回true

  • 不等 对应于上面的等号,不等号也有两种:!=!==!===互为相反,==成立,!=一定不成立。 !=====互为相反,严格相等成立,则严格不相等不成立。
  • 其它

    大于,小于,大于等于,小于等于的比较规则如下: 比较的两个对象都是数字,按照数学中数字的比较方法。 数字和字符串比较,字符串转为数字后再比较。 字符串和字符串比较,从第一个字符开始,逐个比较,发现不相等立即返回。字符按照ASCII编码值的大小比较,一般只要记住:数字<大写字母<小写字母,字母a小于字母zA小于Z, 比较过程中,当一个字符串结束另外一个字符串还有,还没有比较出大小,则长的字符串较大。

  • 逻辑运算符

    在介绍逻辑运算符之前,我们必须明确逻辑运算符的操作数只能是布尔型,其他类型都会被转换为布尔型:除了0nullundefined""外,其他的值转换为布尔值都是true

  • 逻辑与 逻辑与有两个操作数,中间用&&连接,只有两个操作数都是true结果才是true; 其中一个操作数不是布尔型,当左操作数为真值时,返回右操作数。当左操作数为假值时,返回左操作数。

  • 逻辑或 逻辑或同样有两个操作数,用||连接,至少有一个操作数为true时结果为true; 其中一个操作数不是布尔型,当左操作数为真值时,返回左操作数。当左操作数为假值时,返回右操作数。

  • 逻辑非 逻辑非只有一个操作数,!后连接操作数或表达式,意思是将操作数取反; 如果操作数不是布尔型,编译器首先将其他类型转换为布尔型,然后返回true或者false

  • 平台将读取用户补全后的LoginBoolSymbol.js

  • 调用其中的mainJs()方法,输入若干组测试数据;

  • 最后根据测试结果判断程序是否正确

     

    function mainJs(a,b) {
    //请在此处编写代码
    /********Begin***************/
    if(a>b){
         return a&&b ;
    }else{
         return !a ;
    }
    
    /**********End****************/
    }
    

    第4关:条件运算符

    任务描述

    本关任务:计算并返回两个字符串中较大的字符串。字符串的大小比较直接使用比较运算符>或者<即可。

    例如:对于字符串aaab,要求返回ab

    相关知识

    条件运算符最主要的作用是代替选择结构,简化代码。

    条件运算符

    条件运算符由?:构成,三个操作数分别在?的左边、右边以及:的右边,第一个操作数如果是真值,整个表达式返回第二个操作数的值;第一个操作数如果是假值,返回第三个操作数的值。

    一般我们说到JavaScript中的三元运算符,指的就是条件运算符,因为它有三个操作数。条件运算符通常用来简化表达式。

  • 具体请参见后续测试样例。
  • 平台将读取用户补全后的ConditionSymbol.js

  • 调用其中的mainJs()方法,输入若干组测试数据;

  • 接着根据测试的输出判断程序是否正确。
     

    function mainJs(a,b) {
    //请在此处编写代码
    /*********begin*********/
    var c=a>b?a:b;
    return c;
    
    /*********end*********/
    }
    


    第5关:运算符的优先级和结合性

    任务描述

    本关任务:我们将给出函数mainJs()的完整代码,要求在函数体内第三句以及第五句中添加适当的括号,实现编程要求里面的要求。

    要想完成本关任务,必须熟悉运算符的优先级和结合性,请阅读下面的相关知识。

    相关知识

    在我们平时的学习中,经常会看到一些前辈的代码短小精悍却功能复杂,大部分是通过把大量运算符放在一起结合使用实现的,所以我们要深入理解运算符的优先级和结合性,写出漂亮的代码!

    运算符的优先级

    JavaScript中运算符的优先级和数学中运算符的优先级意思相同,优先级高的运算符比优先级低的运算符先计算,例如数学中1+2*3算式,先计算2*3,结果再与1相加,所以乘法的优先级高于加法,在JavaScript中,不同的优先级也是这个作用。

    下面是常见的运算符的优先级:

    分类运算符含义结合性
    1++前后增量R
    1--前后减量R
    1逻辑非R
    2* / %乘 除 求余L
    3+ -加减L
    4< <= > >=比较数字顺序L
    4in测试属性是否存在L
    5==判断相等L
    5!=判断不等L
    6&按位与L
    7&&逻辑与L
    8?:条件运算符R
    9=赋值R
    9+= -= *= /= %=运算且赋值R
    10,忽略第一个操作数L

    从上到下优先级逐渐降低。第一栏数字相同的运算符优先级相同,对于这个表格,不需要全部记住,但是常见的需要记住,比如加减乘除的优先级高于比较运算符,赋值运算符的优先级几乎是最低的,

    运算符的结合性

    运算符的优先级是针对不同优先级的运算符来说的,对于同一级的运算符,运算顺序取决于运算符的结合性,比如加法和减法的优先级相同,而加法和减法都是从左向右结合,所以a+b-c式中,会先计算a+b,即按照阅读的顺序计算。

    也有很多运算符是从右到左结合的,比如取反、逻辑非。

    上面图中的第三栏就是结合性,R表示从右向左结合,L表示从左到右结合,从左向右的占多数,这和我们在数学中的习惯相同。

  • 函数参见下面的测试说明部分。
  • 平台将读取用户补全后的Priority.js

  • 调用其中的mainJs()方法,输入若干组测试数据;

  • 接着根据测试后的输出判断程序是否正确。|


     

    
    function mainJs(a,b) {
        var a = parseInt(a);
        var b = parseInt(b);
    //请在此处编写代码
    /*********begin*********/
    var c=((a-1)+b)*b==24?1:0;
    var d=4;
    var e = (c*d)+d;
    
    
    /*********end*********/
        return e;
    }
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值