GDG shanghai programming one hour by JavaScript

刚在昨天参加了一场JS入门编程的活动,目的就是提升对JS的兴趣。

因为是针对零基础开发者的,一上来就是“Hello World!”了

当然,想用JS输出"Hello World!"也有不止一种方法

第一种:

document.write("Hello World!");
alert("Hello World");

第二种:

var str ="Hello World!";
alert(str);

 

随后提到了,JS是一种弱类型的语言

比如JS的变量可以赋值为:

var str = undifined;

 

在JS中,下列两种操作也都会得出不同的结果:

var str = "2"+1;
document.write(str);
var str = "2"-1;
document.write(str);

这也是一种神奇的现象

 

在JS中写出“确定取消”选择窗口弹出时,可以这么写:

var str = prompt("Enter:
                 ");
alert("Hello" + str);
var bln = confirm("你确定要删除吗?
                  ");
if(bln === true){
  //do something
alert("已经删除");
}

此处注意:

三个等号不会做类型的匹配,尽量使用三个等号

在JS中尽量少使用两个等号

 

函数的表达也类似C语言:

 

function add(a,b)
{
  return a+b;
}
alert("2 + 3 = " + add(2,3));

 

 

但是随后讲到的东西我感觉听懂了但是写不出正确的代码:

错误代码:

function Person(name)
{
  this.myName = name;
  
  this.SayHello = function(friend)
  {
      document.write("Hello,"+firend+"!My name is "+this.myName);
  }
}
                     
var Jessica = new Person("Jessica");
alert(Jessica.myName);

要求输出应该为 在屏幕内输出一行Hello......,但是我这么写只能输出Jessica,不知道哪里出错了

 

随后将的一个东西是和上面这个有点联系,在函数外对对象赋值,具体看如下代码:

Jessica.sex = "Female";
alert(Jessica.sex);
Jessica.SayHello("XiaoMa");
var XiaoMa = {
  myName:"XiaoMa";
  SayHello:function(friend){
    documet.write("Hello,"+firend+"!My name is "+this.myName);
  }
};

同样,也有错误

 

有关JS是面向对象的语言,还提到了一个例子:

  var TrainingRoom1 = {
    temprature: 21,
    person:[XiaoMa,Jessica,Lookon,Leo],
    AddPeople:function(people){person.push(people);}
  }

alert(XiaoMa.myName);
XiaoMa.Sayhello("Jessica");

 

在最后,我写了一道题目,只是补充了JS中缺漏的函数部分,HTML,CSS已经完整提供

完整的网页就是可以让用户和计算机猜拳比拼胜负

<div class="finger-guessing">
  <div id="choice" class="choice">
    <label><input name="custom" type="radio" value="石头" checked/>石头</label>
    <label><input name="custom" type="radio" value="剪刀" />剪刀</label>
    <label><input name="custom" type="radio" value="布" /></label>
  </div>
  <div class="info">
    <span class="choice-result">PLAYER: <span id="player"></span></span>
    <span class="choice-result">COMPUTER: <span id="computer"></span></span>
    <br /><button id="start" type="button">START</button>
    <div id="result"></div>
  </div>
</div>
View HTML
@c1: #FF6138;
@c2: #FFFF9D;
@c3: #BEEB9F;
@c4: #79BD8F;
@c5: #00A388;
body {
  background-color: @c5;
}
.finger-guessing {
  width: 100%;
  height: 100%;
  background: @c5;
  .choice {
    height: 100px;
    text-align: center;
    padding: 50px 0;
    border-bottom: 5px dotted @c3;
    label {
      display: inline-block;
      width: 150px;
      padding: 20px 0;
      margin: 0 10px;
      font-size: 36px;
      // font-weight: bold;
      color: @c3;
      border-width: 5px;
      border-style: solid;
      border-color: @c3;
      &:hover {
        cursor: pointer;
        color: @c2;
        border-color: @c2;
      }
    }
  }
  .info {
    padding: 50px 0;
    text-align: center;
    width: 100%;
    // background-color: @c4;
    .choice-result {
      display: inline-block;
      text-align: left;
      width: 200px;
      height: 30px;
      line-height: 30px;
      // border: 1px solid black;
      color: @c3;
      font-size: 24px;
      // font-weight: bold;
      padding: 10px 30px;
    }
    #start {
      margin: 40px 0 30px;
      cursor: pointer;
      width: 200px;
      height: 60px;
      font-size: 30px;
      color: @c5;
      background: @c3;
      border: 5px solid @c2;
      border: none;
      &:hover {
        color: @c5;
        background: @c2;
      }
    }
    #result {
      font-size: 64px;
      // font-weight: bold;
      color: @c3;
    }
  }
}
View CSS
// 随机产生一个选择
var randomComputerChoice = function() {
  var computerChoice = Math.random();
  if (computerChoice < 0.34) {
        computerChoice = "石头";
  } else if(computerChoice <= 0.67) {
        computerChoice = "布";
  } else {
        computerChoice = "剪刀";
  }
  return computerChoice;
};

/** 
 * 定义一个函数 getCustomChoice,这个函数用来获取玩家当前选择的是石头、剪刀还是布
 * js 中函数声明的方式为,你可以参考上面的函数:
 *   function foo(arg_1, arg_2) {
 *     return 0;
 *   }
 * tips: 1. 通过 document.getElementsByName() 来获取 DOM 节点的数组
 *       2. 遍历获取的数组,检查节点的 checked 属性
 *          如果节点的 checked 属性是 true,那么该元素就是用户当前选中的节点
 *       3. 你可以通过 alert(value) 来调试这个函数的返回值
 */

var getCustomChoice = function()
{
  var choices = document.getElementsByName('custom');
  for(var i = 0, len = choices.length; i < len ; i++ )
  {
    if(choices[i].checked === true )
    {
      //alert(choices[i].checked);
       return choices[i].value;
    }
  }
};

/** 
 * 定义一个函数 compare,这个函数有两个参数 choice1 和 choice2
 * 这个函数用来判断 choice1 和 choice2 那个获胜
 * 输入: choice1 和 choice2 为 ["石头", "剪刀", "布"] 中的一个值
 * 返回值: choice1 获胜返回 1
 *         choice2 获胜返回 -1
 *         平手返回 0
 * tips: 1. 使用 if 语句,js 的 if 语句语法:
 *            if (expression_1) {
 *              // your code
 *            } else if (expression_2) {
 *              // your code
 *            } else {
 *              // your code
 *            }
 */


var compare = function(choice1, choice2){
  if(choice1 === choice2){
    return 0;
  }
  if(choice1 === '石头')
  {
    if(choice2 === '布')
    {
      return -1;
    } 
    else 
    {
      return 1;
    }
  }
  if(choice1 === '剪刀')
  {
    if(choice2 === '石头')
    {
      return -1;
    } 
    else 
    {
      return 1;
    }
  }
  if(choice1 === '布')
  {
    if(choice2 === '剪刀')
    {
      return -1;
    } 
    else 
    {
      return 1;
    }
  }
};

// 显示结果
document.getElementById('start').onclick = function(){
  var customChoice = getCustomChoice();
  var computerChoice = randomComputerChoice();
  document.getElementById('player').innerHTML = customChoice;
  document.getElementById('computer').innerHTML = computerChoice;
  var result = compare(customChoice, computerChoice);
  var resultStr = '';
  if (result === 0) {
    resultStr = '平局';
  } else if (result === 1) {
    resultStr = '你赢了';
  } else {
    resultStr = '你输了';
  }
  document.getElementById('result').innerHTML = resultStr;
};

 暂时成品代码:

<html>
<body>
<script>
function Person(name)
{
  this.myName = name;
  
  this.SayHello = function(friend)
  {
      document.write("Hello,"+firend+"!My name is "+this.myName);
  }
}
                   
var Jessica = new Person("Jesica");
//alert("Hello,"+"firend"+"!My name is "+Jessica.myName);
document.write("Hello,"+"firend"+"!My name is "+Jessica.myName);

var str = prompt("Plz scan ur name:");
alert("Hello , " + str);
var bln = confirm("Next ,I'll ask u a question , " + str + ", r u foolish enough?");
if(bln === true){
  //do something , 三个等号不会做类型的匹配,尽量使用三个等号
alert("to be closed");
} else {
  alert("We'll continue!");
}

</script>
</body>
</html>

 

 

 

posted @ 2014-02-23 11:33  Jeremy Wu  阅读(638)  评论(2编辑  收藏  举报