百度前端学院第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>
加减乘除预览
自己打的一些东西
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=""; } }