百度前端学院第17到18天和第16天的作业

  • 2019 年 10 月 19 日
  • 笔记

终于学JavaScript了!

数组的相关参数

数组shift删除第一个元素,pop删除最后一个元素,返回的都是删除的元素,unshift在开头增加一个元素,push在结尾增加元素,splice用于删除和修改,slice用于切片.
***

数据类型转换

一元的 + 运算符可用于把变量转换为数字:如果无法转换变量,则仍会成为数字,但是值为 NaN(Not a number):

constructor

"Bill".constructor                 // 返回 "function String()  { [native code] }"  (3.14).constructor                 // 返回 "function Number()  { [native code] }"  false.constructor                  // 返回 "function Boolean() { [native code] }"  [1,2,3,4].constructor              // 返回 "function Array()   { [native code] }"  {name:'Bill', age:62}.constructor  // 返回" function Object()  { [native code] }"  new Date().constructor             // 返回 "function Date()    { [native code] }"  function () {}.constructor         // 返回 "function Function(){ [native code] }"

可以检查对象是否是数组函数:

function isArray(myArray) {      return myArray.constructor === Array;  }

可以在文本字符串中使用反斜杠对代码行进行换行。

const 关键字用来声明 JavaScript中的常量(与变量相对,不可修改,但同样是用于存储信息的"容器"。),常量的值不能通过重新赋值来改变,并且不能重新声明。

就算变量定义的是数组格式,typeof返回的数据类型还是 object :

数组和对象都是object

if for switch while

if

switch

如果 default不是 switch 代码块中最后一个case,请记得用 break 结束默认case

for

for (语句 1; 语句 2; 语句 3/*第三个语句是不需要;的*/) {       要执行的代码块  }

语句 1 在循环(代码块)开始之前执行。

语句 2 定义运行循环(代码块)的条件。

语句 3 会在循环(代码块)每次被执行后执行。

通常,您会使用语句 1 来初始化循环中所使用的的变量(i = 0)。

但情况并不总是这样,JavaScript 不会在意。语句 1 是可选的。

您可以在语句 1 中初始化多个值(由逗号分隔):

for循环的语句1可以有多个,用,分割

for (i = 0, len = cars.length, text = ""; i < len; i++) {      text += cars[i] + "<br>";  }

for-in 循环遍历的是对象的属性,而不是数组的索引。因此, for-in 遍历的对象便不局限于数组,还可以遍历对象。

语句1和语句3都是可以省略的,语句2也是可选的。

正则表达式

// constructor转换  c="1111";  a=c.constructor===Array;  console.log(a);  // false  // 使用search返回地址  var a="HELLO world";  b=a.search("wo");  console.log(b);  // 6  // 使用replace用于修改  b=a.replace("hello","你好");  console.log(b);  b = a.replace(/hello/i,"nihao");  console.log(b);  // 返回nihao world  // text用来搜索字符串返回true或者别的。  c=/e/i.test("hello world");  console.log(c);  // "hello world"里面有e所以返回true;  console.log(typeof(true));  // exec它通过指定的模式(pattern)搜索字符串,并返回已找到的文本。如果未找到匹配,则返回 null。  console.log(/e/i.exec("hllo woefr"));  // 返回e  console.log(typeof(/e/i.exec("hellofregt")));  // 返回object

异常

function jj(){      var jieguo=document.getElementById("jieguo");      jieguo.innerHTML="nihao";      var input=document.getElementById("input").value;      try{          if(isNaN(input)) throw "不是数字";          if(input=="") throw "是空的";          input=Number(input);          if(input<5) throw "太小";          if(input>10) throw "太大";      }      catch(err){          jieguo.innerHTML="输入:"+err;      }      finally{          document.getElementById("input").value="";      }  }

作业代码1 实现加减乘除

<!DOCTYPE html>  <html>  <head>      <meta charset="UTF-8">      <title>IFE ECMAScript</title>  </head>  <body>      <input id="first-number" type="number" value="0" placeholder="第一个数字">      <input id="second-number" type="number" value="0" placeholder="第二个数字">      <button id="add-btn" onclick="jia()">加</button>      <button id="minus-btn" onclick="jian()">减</button>      <button id="times-btn" onclick="chen()">乘</button>      <button id="divide-btn" onclick="chu()">除</button>      <p id="result">运算结果</p>      <script>          function jia(){              try{                  one=document.getElementById("first-number").value;                  two=document.getElementById("second-number").value;                  // if(isNaN(one)) throw "不是数字";                  // if(isNaN(two)) throw "不是数字";                  console.log("原始"+typeof(one)+one);                  one=parseFloat(one);                  two=parseFloat(two);                  if(isNaN(one)) throw "不是数字";                  if(isNaN(two)) throw "不是数字";                  console.log("结果"+typeof(one)+one)                  result=one+two;                  document.getElementById("result").innerHTML="运算结果:"+result;              }              catch(err){                  console.log("输入"+err);              }            }          function jian(){              one=document.getElementById("first-number").value;              two=document.getElementById("second-number").value;              console.log("原始"+typeof(one)+one);              one=parseFloat(one);              two=parseFloat(two);              console.log("结果"+typeof(one)+one)              result=one-two;              document.getElementById("result").innerHTML="运算结果:"+result;          }          function chen(){              one=document.getElementById("first-number").value;              two=document.getElementById("second-number").value;              console.log("原始"+typeof(one)+one);              one=parseFloat(one);              two=parseFloat(two);              console.log("结果"+typeof(one)+one)              result=one*two;              document.getElementById("result").innerHTML="运算结果:"+result;          }          function chu(){              one=document.getElementById("first-number").value;              two=document.getElementById("second-number").value;              console.log("原始"+typeof(one)+one);              one=parseFloat(one);              two=parseFloat(two);              console.log("结果"+typeof(one)+one)              result=one/two;              document.getElementById("result").innerHTML="运算结果:"+result;          }      </script>  </body>  </html>

作业代码2 实现转换2进制

<!DOCTYPE html>  <html>  <head>      <meta charset="UTF-8">      <title>IFE ECMAScript</title>      <style>          input{              width: 200px;          }      </style>  </head>  <body>          <input id="dec-number" type="number" placeholder="输入一个十进制非负整数">          <input id="bin-bit" type="number" placeholder="输入转化后二进制数字位数">          <button id="trans-btn" onclick="jj()">转化为二进制</button>          <p id="result">运算结果</p>  <script>    function dec2bin(decNumber) {      // 在这里实现你的转化方法,注意需要判断输入必须为一个非负整数      try{          console.log(decNumber);          if (decNumber<=0||decNumber.constructor!=Number) throw "输入必须为一个非负整数";          var z=decNumber;          var a=""          for(var i=0;;i++){              y=z%2;              a=String(y)+a;             if(z==1){                  break;              }              z=parseInt(z/2);          }          a=Number(a);          return a;      }      catch(err){          document.getElementById("result").innerHTML=err;      }  }  // console.log(typeof(c))  // console.log(c)  // 实现党点击转化按钮时,将输入的十进制数字转化为二进制,并显示在result的p标签内  // Some codeing  function jj(){      var c=Number(document.getElementById("dec-number").value);      d=dec2bin(c);      // d=new Number(d);      weishu=document.getElementById("bin-bit").value;      weishu=Number(weishu);      long=String(d).length      console.log(long);      console.log(weishu);      if(weishu>=long){          x=weishu-long;          for(var i=0;i<x;i++){              d="0"+String(d);              // d=Number(d);          }      }else{          d="位数过小,请重新输入,最小位数为:"+long;          console.log(typeof(d));      }      document.getElementById("result").innerHTML=d;  }        </script>  </body>  </html>

转换2进制预览

加减乘除预览
自己打的一些东西

var c=12;  var day  console.log(typeof(c))  if (c!="12"){      console.log("yes")  }else if (c=='12'){      console.log("完全相等")  }  else{      console.log("no")  }  c= new Date()  console.log(new Date().getDay())  switch(new Date().getDay()){      // case 0:      //     day ="星期天";      //     break;      // case 2:      //     day ="星期2";      //     break;      // case 3:      //     day = "星期3";      //     break;      // default:      //     day="未设置";      //     // break;      case 0:  day = "星期天";  break;  case 1:  day = "星期一";   break;  case 2:  day = "星期二";   break;  case 3:  day = "星期三";   break;  }  console.log("今天是"+day);  switch (new Date().getDay()) {  case 0:  day = "星期天";  break;  case 1:  day = "星期一";   break;  case 2:  day = "星期二";   break;  case 3:  day = "星期三";   break;  // case 4:  //     day = "星期四";  //      break;  // case 5:  //     day = "星期五";  //      break;  // case 6:  //     day = "星期六";  }  console.log("今天是"+day);  var c=["html","css","python","java"] ,d="",i;  for(i=0;i<c.length;i++){  d+=c[i]+"t";  }  console.log(d);  var text="123";  for(i=0;i<c.length;i++){  text+=c[i]+"n";  }  console.log(text)  var x;  for (x in c){  console.log("star")  console.log(c[x]);  }  function zixing(){  var b=1;  for(i=0,c=1;i<100;i++){  // console.log("typeof(c)= "+typeof(c));  // console.log("c="+c);  b=1+i;  document.write(b);  document.write("<br>");  // console.log(typeof(b));  }  }  var i=null;  i=0;  while (i<10){  i++;  console.log(i)  if(i===3){  break;  }  }  var i=null;  i=0;  do{  console.log(i);  i++;  if(i===3){  console.log("hello");  // continue;  break;  }  console.log("执行完毕")  }  while(i<10);  console.log("stt")  console.log(i);  i=0;  var list=["hello","world","welcome","to","china"]  biaoqian:{  console.log(list[i]+"n");  console.log(list[3]+"n");  i++;  console.log(list[i]+"n");  break biaoqian;  console.log("after break");  }  console.log("111".constructor)  // var a="111";  // document.getElementById("id").innerHTML=lz(a);  // function lz(sh){  //     return sh.constructor === String;  // }  var fruits = ["Banana", "Orange", "Apple", "Mango"];  document.getElementById("qq").innerHTML = isArray(fruits);    function isArray(myArray) {  return myArray.constructor === Array;  }  var d=["11","123",["12",'1']];  console.log(d.length);  // c=d.join("*")  d.pop();  d.push("增加");  console.log(d);  d.shift();  console.log(d);  d=null;  d=["hello","world","nihao"];  c=d.shift();  console.log(c+"n"+d);  c=d.unshift(["11","11"]);  console.log(c+"n"+d);  console.log(d[0]);  // 通过splice删除或增加元素;  d.splice(0,1,"xin");  console.log(d);  // concat用来链接元素  dd=["新","元","素"];  console.log(d.concat(dd));  c="111";  console.log(c.length);  // slice()用于切出。  e=dd.slice(1,2);  console.log(e);  var b= new Date();  console.log(b);  console.log("11");  console.log(typeof(b));  bb=b.toDateString();  console.log(bb);  console.log(typeof(bb));  b=b.getDate();  console.log(b);  console.log(typeof(b));  // constructor转换  c="1111";  a=c.constructor===Array;  console.log(a);  // false  // 使用search返回地址  var a="HELLO world";  b=a.search("wo");  console.log(b);  // 6  // 使用replace用于修改  b=a.replace("hello","你好");  console.log(b);  b = a.replace(/hello/i,"nihao");  console.log(b);  // 返回nihao world  // text用来搜索字符串返回true或者别的。  c=/e/i.test("hello world");  console.log(c);  // "hello world"里面有e所以返回true;  console.log(typeof(true));  // exec它通过指定的模式(pattern)搜索字符串,并返回已找到的文本。如果未找到匹配,则返回 null。  console.log(/e/i.exec("hllo woefr"));  // 返回e  console.log(typeof(/e/i.exec("hellofregt")));  // 返回object  function jj(){      var jieguo=document.getElementById("jieguo");      jieguo.innerHTML="nihao";      var input=document.getElementById("input").value;      try{          if(isNaN(input)) throw "不是数字";          if(input=="") throw "是空的";          input=Number(input);          if(input<5) throw "太小";          if(input>10) throw "太大";      }      catch(err){          jieguo.innerHTML="输入:"+err;      }      finally{          document.getElementById("input").value="";      }  }