前端学习笔记

JavaScript基础

绘制三角形

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title></title>
  </head>
  <body>
    <script src="test.js">
    </script>
  </body>
</html>
function print_triangel(n){
    for(var i = 1; i <= n; ++i){
        for(var j = 0; j < i; ++j){
            document.write("*");
        }
        document.write("<br>");
    }
}
do{
    var n = prompt("Input an Integer!");
    if(Number(n)<=0 || parseFloat(n)!=parseInt(n)){
        console.log(typeof(n));
        console.log(n); 
        alert("请输入正整数!");
    }else{
        print_triangel(n);
    }
    break;
}while(n);

JSON

JavaScript object notation

用来传输由属性值或者序列性的值组成的数据对象
没有方法只有属性的对象,其中属性必须用双引号包围

熟悉内建对象的属性与方法

输出格式化日期

function formatDate(d){
    var year = d.getFullYear();
    var month = d.getMonth()+1;
    var date = d.getDate();
    var hour = d.getHours();
    var minute = d.getMinutes();
    var second = d.getSeconds();
    month = month<10?"0"+month:month;
    date = date<10?"0"+date:date;
    hour = hour<10?"0"+hour:hour;
    minute = minute<10?"0"+minute:minute;
    second = second<10?"0"+second:second;
    var res_part1=[year,month,date].join("/");
    var res_part2=[hour,minute,second].join(":");
    var res_final=[res_part1,res_part2].join(" ");
    console.log(res_final);
    "yyyy/MM/dd HH:mm:ss";
}
formatDate(new Date());

写一个函数去掉数组中的重复元素

function clearArray(a){
    var res = [];
    var existed = new Object();
    for(i in a){
        if(!existed[a[i]]){
            res.push(a[i]);
            existed[a[i]]=true;
        }
        // 低效但是使用buildin api
        // if(res.indexOf(a[i])==-1){
        //     res.push(a[i]);
        // }
    }
    return res;
}

写一个函数判断一个字符串中出现次数最多的字符,并统计这个字符出现的次数

function countChar(s){
    res = new Object();
    for (c in s){
        if(res[s[c]]){
            res[s[c]]++;
        }else{
            res[s[c]]=1;
        }
    }
    res_max=0;
    var res_char;
    for (k in res){
    	if(res_max<res[k]){
			res_max=res[k];
			res_char=k
		}
    }
    console.log(res_char+"出现次数最多,为"+res_max);
}

实现导航栏

来自蓝桥云课
来自蓝桥云课

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8" />
    <link rel="stylesheet" href="styles.css">
    <title></title>
  </head>
  <body>
    <div id="menu">
      <ul id="list">
        <li><a>首页</a></li>
        <li><a>HTML</a></li>
        <li><a>CSS</a></li>
        <li><a>JavaScript</a></li>
        <li><a>关于</a></li>
        <li><a>帮助</a></li>
      </ul>      
    </div>
    <script src="test.js">
    </script>
  </body>
</html>
#list li {
    list-style-type: none;
    width: 100px;
    height: 50px;
    line-height: 50px;
    background-color: beige;
    text-align: center;
    float: left;
}

#list li.current {
    background-color: red;
}

#list li {
    text-decoration: none;
}
function becomeRed(){
    var p = this.parentNode;
    for(var i=0; i< p.children.length;++i){
        var c = p.children[i];
        c.removeAttribute("class");
    }
    this.className="current";
}

var lis = document.getElementById("list").getElementsByTagName("li");
for(var i = 0; i < lis.length; ++i){
    lis[i].onclick=becomeRed;
    lis[i].firstElementChild.href="javascript:void(0)";
}

闭包

Closures “close over” their environment, meaning they remember the variables from the outside scope even after the function is returned or the scope has exited.

模拟私有变量

function createCounter() {
  let count = 0; // 这个变量是私有的,外部无法直接访问

  return {
    increment: function() {
      count += 1;
      return count;
    },
    decrement: function() {
      count -= 1;
      return count;
    },
    getCount: function() {
      return count;
    }
  };
}

const myCounter = createCounter();
console.log(myCounter.getCount());    // 输出: 0
console.log(myCounter.increment());   // 输出: 1
console.log(myCounter.increment());   // 输出: 2
console.log(myCounter.decrement());   // 输出: 1

创建变量

var let const

面向对象编程

函数进阶

HTML5

双标签(又称体标签)

<html></html>
<head></head>
<title></title>
<body></body>
<h1></h1>
<p></p>
<div></div>
<span></span>
<a></a>
<ul></ul>

单标签(又称空标签)

<br />
<!--换行-->
<hr />
<!--水平分隔线-->
<meta />
<img />

常用标签综合
在这里插入图片描述

h1 {
    text-align:center;
}

#slogan {
    text-align: center;
}

#first {
    background-color: pink;
    width: 500px;
    height: 300px;
}
<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>test</title>
    <link rel="stylesheet" href="styles.css">
  </head>
  <body>
    <div id="first">
      <h1>实验楼学习教程</h1>
      <p id="slogan">学习就上<span><a href="https://www.lanqiao.cn/">实验楼</a></span></p>
      <hr />
      <p>在实验楼你可以学习的课程有:</p>
      <ul>
        <li>HTML5基础课程</li>
        <li>CSS基础课程</li>
        <li>Linux基础课程</li>
        <li>...</li>
      </ul>
    </div>
  </body>
</html>

课程表实验
在这里插入图片描述

<!doctype html>
<html>
    <head>
        <title>test</title>
        <meta charset='UTF-8'>
        <link rel="stylesheet" href="styles.css">
    </head>
    <body>
        <table border="l" width="600px" height="150px" bgcolor="pink">
            <caption>课程表</caption>
            <tr align="center">
                <td colspan="4">时间\日期</td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
            <tr align="center">
                <td rowspan="2">上午</td>
                <td colspan="3">9:30-10:15</td>               
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
            </tr>
            <tr align="center">
                <td colspan="3">10:25-11:10</td>
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
            </tr>
            <tr>
                <td colspan="9"> &nbsp; </td>
            </tr>
            <tr align="center">
                <td rowspan="2">下午</td>
                <td colspan="3">14:30-15:15</td>               
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
            </tr>
            <tr align="center">
                <td colspan="3">15:25-16:10</td>               
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
                <td>语文</td>
            </tr>
        </table>
    </body>
</html>

表单综合案例
在这里插入图片描述

<!doctype html>
<html>
    <head>
        <title>test</title>
        <meta charset='UTF-8'>
        <link rel="stylesheet" href="styles.css">
    </head>
    <body>
        <form name="regist" method="post" action="#">
            <p>
            姓名:
                <input type="text" size="30" maxlength="5"></input>
            </p>
            <p>
            密码:
                <input type="password" size="30"></input>
            </p>
            <p>
            性别:
                <input type="radio" name="gender" value="male"></input>
                <input type="radio" name="gender" value="female"></input>
            </p>
            <p>
            爱好:
                <input type="checkbox" name="hobby" value="singing">唱歌</input>
                <input type="checkbox" name="hobby" value="running">跑步</input>
                <input type="checkbox" name="hobby" value="swiming">游泳</input>
            </p>
            <p>
            照片:
                <input type="file"> </input>
            </p>
            <p>
            个人描述:
                <textarea name="individual description" rows="3" cols="30"></textarea>
            </p>
            <p>
            籍贯:
            <select name="birthplace">
                <option value="成都">成都</option>
                <option value="广州">广州</option>
                <option value="杭州">杭州</option>
                <option value="武汉">武汉</option>
            </select>
            </p>
            <p>
                <button type="submit">提交</button>
                <button type="reset">重置</button>
            </p>
        </form>
    </body>
</html>

框架的使用

<!doctype html>
<html>
    <head>
        <title>test</title>
        <meta charset='UTF-8'>
        <link rel="stylesheet" href="styles.css">
    </head>
    <body>
        <p>
            <a href="https://www.lanqiao.cn/" target="shiyanlou">实验楼</a>
        </p>
        <iframe 
            name="shiyanlou"
            width="400"
            height="400"
            frameborder="0">
        </iframe>
    </body>
</html>

HTML5图片拖放

<!doctype html>
<html>
    <head>
        <title>canvas</title>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="canvas.css" />
    </head>
<body>
    <p>请把图片拖到矩形框中</p>
    <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <br />
    <img 
        id="drag1"
        src="drag-image.png"
        draggable="true"
        ondragstart="drag(event)"
    />
    <script src="canvas.js">
    </script>
</body>
</html>
#div1 {
    width: 200px;
    height: 100px;
    padding: 10px;
    border: 1px solid red;
}
function allowDrop(ev){
    ev.preventDefault();
}

function drag(ev){
    ev.dataTransfer.setData("Text", ev.target.id);
}

function drop(ev){
    ev.preventDefault();
    var data = ev.dataTransfer.getData("Text");
    ev.target.appendChild(document.getElementById(data));
}

本地留言板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>校园留言板</title>
    <link rel="stylesheet" href="webStorage.css"></link>
</head>
<body>
    <h1>简单Web留言本</h1>
    <textarea id="memo" rows="3" cols="60"></textarea>
    <br />
    <input type="button" value="新增留言" onclick="saveStorage('memo')">
    <input type="button" value="清空留言" onclick="clearStorage()">
    <input type="button" value="清除最后一个留言" onclick="clearSingleStorage()">
    <hr />
    <p id="msg"></p>
    <script src="index.js"></script>
</body>
</html>
function saveStorage(id){
    var data = document.getElementById(id).value;
    var time = new Date().toUTCString();
    localStorage.setItem(time, data);
    showMsg("msg");
}

function showMsg(id){
    var result = '<table border="1">';
    for (var i = 0; i < localStorage.length; i++){
        var key = localStorage.key(i);
        var value = localStorage.getItem(key);
        result += "<tr><td>"+value+"</td><td>"+key+"</td></tr>";
    }
    result += "</table>";
    var target = document.getElementById(id);
    target.innerHTML = result;
}

function clearStorage(){
    localStorage.clear();
    showMsg("msg");
}

function clearSingleStorage(){
    localStorage.removeItem(localStorage.key(localStorage.length-1));
    showMsg("msg");
}

showMsg("msg");

上传图片并显示预览

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件读取</title>
    <link rel="stylesheet" href="webStorage.css"></link>
</head>
<body>
    <input id="fileDemo" name="fileDemo" type="file" class="file" multiple />
    <input type="button" value="显示图片" id="readAsDataURL" onclick="showDataByURL();" />
    <input type="button" value="显示文本" id="readAsText" onclick="showDataByText();"/>
    <div id="result"></div>
    <script src="index.js"></script>
</body>
</html>
function showDataByURL(){
    var resultFile = document.getElementById("fileDemo").files[0];
    if (resultFile){
        var reader = new FileReader();
        reader.readAsDataURL(resultFile);
        reader.onload = function(e){
            var urlData = this.result;
            document.getElementById("result").innerHTML += "<img src='"+urlData+"' alt='"+resultFile.name+"'/>";
        }
    }
}

function showDataByText(){
    var resultFile = document.getElementById("fileDemo").files[0];
    if (resultFile){
        var reader = new FileReader();
        reader.readAsText(resultFile);
        reader.onload = function(e){
            var textData = this.result;
            document.getElementById("result").innerHTML += textData;
        }
    }
}

CSS3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值