• 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>
  • 相关阅读:
    js 产生随机数
    基于bootstrap的multiple-select下拉控件使用
    jqgrid 单列排序和组合排序
    jqgrid 配置行号及行号的宽度
    jqgrid 配置分页大小及下拉项
    jqgrid 滚动分页
    jqgrid 宽度自适应
    jqgrid 行选中multiboxonly属性说明
    jqgrid 谈谈给表格设置列头事件、行事件、内容事件
    jqgrid 加入右键菜单按钮管理
  • 原文地址:https://www.cnblogs.com/wushuaiyi/p/3561735.html
Copyright © 2020-2023  润新知