20171031

JavaScript 编程题

下面两个函数的返回值是一样的吗?为什么?

function foo1()
{
  return {
      bar: "hello"
  };
}

function foo2()
{
  return
  {
      bar: "hello"
  };
}

答:两个函数返回的值并不一样。
因为如果执行以下语句:
console.log(“foo1 returns:”);
console.log(foo1());
console.log(“foo2 returns:”);
console.log(foo2());
将得到下面的结果:
foo1 returns:
Object {bar: “hello”}
foo2 returns:
undefined
网上答案:不仅仅只是对返回不一样的结果奇怪,也要对foo2()没有抛出error特别注意。产生这个结果的原因是分号在JavaScript中的用法(省略分号不是好的做法)。当foo2()的一行语句中只包含return时,会在return语句后面自动的加上一个分号。后面的语句也是合法的,不会抛出error,尽管它不会调用,也不做任何事(仅仅只是一个没有用到的语句块,它定义了一个等同于’hello’字符串的属性bar而已)。
这也说明了在Javascript中大括号的位置应该放在语句后面的编程风格更符合Javascript的语法要求(有些语言推荐放在新一行的开头)。


MySQL 编程题

用一条 SQL 语句,查询出每门课都大于 80 分的学生姓名。
表名 student_score

namecoursescore
张三语文81
张三数学75
李四语文76
李四数学90
王五语文81
王五数学100
王五英语90
CREATE TABLE student_score (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
course VARCHAR(255),
score VARCHAR(255)

)
select distinct name,course,score from student_score where name not in (select distinct name from student_score where score<=80)

Java 编程题

一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 10 次落地时,共经过多少米?第 10 次反弹多高?

public class TestBallApp {  

    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        answer();  
    }  
   public static void answer(){  
       float distance=100;float h=0;float s=0;  
       for(int i=1;i<=10;i++){  
           s+=distance+distance/2;  
           distance=distance/2;  
       }  
       s=s-distance;  
       h=distance;  
       System.out.println("第10次落地时,经过:"+s+"m");  
       System.out.println("第10次反弹: "+h+"m");  
   }  
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值