2019-06-12

demo1時鐘

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>時鐘</title>
<style type="text/css">

</style>
<script type="text/javascript">
window.onload = function(){
var oBox = document.getElementById('box');

function timeGo(){
var now = new Date();
// alert(now);//彈出美式時間:Wed Jun 20 2018 15:27:13 GMT+0800 (中國標準時間)
var year = now.getFullYear();//2018年
var month = now.getMonth() + 1;//6月彈出5//范圍0-11 使用+1
var date = now.getDate();//20號
var week = now.getDay();//3//星期幾,西半球時間,范圍0-6,星期日為一周的第一天,為0

var hour = now.getHours();
var minute = now.getMinutes();
var second = now.getSeconds();

// alert(hour + ":" + minute + ":" + second);//15:33:9

oBox.innerHTML = '當前時間是:' + year + '年' + toDouble(month) + '月' + toDouble(date) + '日 ' + toWeek(week) + ' ' + toDouble(hour) + ":" + toDouble(minute) + ":" + toDouble(second);
}

timeGo();
setInterval(timeGo, 1000);
}

//此函數(shù)將星期的數(shù)字轉(zhuǎn)為漢字表示
function toWeek(num){
switch(num){
case 0:
return '星期天'; 
break;
case 1:
return '星期一'; 
break;
case 2:
return '星期二'; 
break;
case 3:
return '星期三'; 
break;
case 4:
return '星期四'; 
break;
case 5:
return '星期五'; 
break;
case 6:
return '星期六'; 
break;
}
}

//此函數(shù)將不足兩位的數(shù)字前面補0
function toDouble(num){
if(num < 10){
return '0' + num;
}else{
return num;
}
}
</script>
</head>
<body>
<div id="box"></div>
</body>
</html>

demo2倒計時

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>倒計時</title>
<script type="text/javascript">
window.onload = function(){
//活動第二天要將頁面下線,直接跳轉(zhuǎn)到其它頁面,不會走后面的代碼了
// window.location.href = "[圖片上傳失敗...(image-797ae-1560395539516)]

http://www.baidu.com";

var oDiv = document.getElementById('div1');

function timeLeft(){
//實際開發(fā)中此時間從服務器獲取,避免客戶端調(diào)整時間
var now = new Date();
var future = new Date(2019,8,2,0,0,0);

// alert(future - now);//彈出與當前時間相差的毫秒數(shù):12469935436
var milli = parseInt((future - now)/1000);

//活動當天頁面下線,避免倒計時到點后繼續(xù)計負時
if(milli <= 0){
http://www.baidu.com";
}

var day = parseInt(milli / 86400);
var hour = parseInt(milli % 86400 / 3600);
var minute = parseInt(((milli % 86400) % 3600) / 60);
var second = milli % 60;

oDiv.innerHTML = '距離2019年08月02日00時00分00秒還有' + day + '天' + toDouble(hour) + '時' + toDouble(minute) + '分' + toDouble(second) + '秒';
}

timeLeft();
setInterval(timeLeft, 1000);
}

function toDouble(num){
if(num < 10){
return '0' + num;
}else{
return num;
}
}
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>

變量的作用域

全局變量:

函數(shù)外部定義的變量,函數(shù)內(nèi)部和外部都可以訪問,它的值可以共享。

局部變量:

函數(shù)內(nèi)部定義的變量,函數(shù)內(nèi)部可以訪問,外部無法訪問。函數(shù)內(nèi)部訪問變量時,先在內(nèi)部查找是否有此變量,如果有,就使用內(nèi)部變量,如果沒有,就去外部查找。

函數(shù)內(nèi)部如果不用‘var’關鍵字定義變量,變量可能會變成全局變量,如果用嚴格模式解析會報錯。

封閉函數(shù)

例子:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>封閉函數(shù)</title>
<script type="text/javascript">
/*原來的寫法
function myAlert(){
var str = '歡迎訪問我的主頁';
alert(str);
}

myAlert();*/

var str = function(){
alert('test');
}

//封閉函數(shù)的一般寫法
//封閉函數(shù)定義:(function(){……})()
/*
;;(function(){
var str = '歡迎訪問我的主頁';
alert(str);
})();//最后的()表示馬上執(zhí)行
*/

//封閉函數(shù)其他的寫法:在匿名函數(shù)前加“!”或者“~”,之后加“()”
~function(){
var str = '歡迎訪問我的主頁';
alert(str);
}();
</script>
</head>
<body>

</body>
</html>

用變量的方式定義函數(shù)

例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用變量的方式定義函數(shù)</title>
<script type="text/javascript">
/*
原來的寫法:可以提前
myAlert();

function myAlert(){
alert('hello!');
}*/

//函數(shù)用變量方式定義:先定義再使用
// myalert();//提前會報錯
var myAlert = function(){
alert('hello!');
}

myAlert();//放在下面可以執(zhí)行

</script>
</head>
<body>

</body>
</html>

閉包

閉包的本質(zhì)就是函數(shù)嵌套,就是在函數(shù)里面定義函數(shù),內(nèi)部函數(shù)可以引用外部函數(shù)的參數(shù)和變量,參數(shù)和變量不會被垃圾回收機制給回收。

閉包的用途:可以存循環(huán)的索引值,做私有變量計數(shù)器。

例:

閉包的一般寫法
function aa(b){
var a = 12;

function bb(){
alert(a);
alert(b);
}

return bb;
}
//cc全局變量不會被垃圾回收
var cc = aa(24);*/

//閉包的封閉函數(shù)寫法
var cc = (function(b){
var a = 12;

function bb(){
alert(a);
alert(b);
}

return bb;
})(24);

cc();

/*
//只能調(diào)用一次的閉包
(function(b){
var a = 12;

function bb(){
alert(a);
alert(b);
}

return bb;
})(24)();

閉包存循環(huán)的索引值

例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>閉包存循環(huán)的索引值</title>
<style type="text/css">
li{
height: 30px;
background-color: gold;
margin-bottom: 10px;
}
</style>
<script type="text/javascript">
//閉包的用途:存循環(huán)的索引值
window.onload = function(){
var aLi = document.getElementsByTagName('li');
// alert(aLi.length);//8

for(var i=0; i<aLi.length; i++){
/*
aLi[i].onclick = function(){
alert(i);//每個li都彈出8,因為點擊時循環(huán)已完畢,i最后為8
}
*/

(function(k){//這里的k是形參
aLi[k].onclick = function(){
alert(k);//彈出每個li的索引值
}
})(i);//這里的i是實參
}
}
</script>
</head>
<body>
<ul>
<li>1</li>
<li>2<</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
</ul>
</body>
</html>

內(nèi)置對象

1、document

document.referrer  //獲取上一個跳轉(zhuǎn)頁面的地址(需要服務器環(huán)境)

2、location

window.location.href  //獲取或者重定url地址
window.location.search //獲取地址參數(shù)部分
window.location.hash //獲取頁面錨點或者叫哈希值

3、Math

Math.random 獲取0-1的隨機數(shù)
Math.floor 向下取整
Math.ceil 向上取整

獲取地址參數(shù)

例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>獲取地址欄參數(shù)</title>
<script type="text/javascript">

window.onload = function(){
//url?aa=tom#12
var data = window.location.search;//?aa=tom
var hash = window.location.hash;//#12
alert(hash);//#12

var oSpan = document.getElementById('span01');
// alert(data);//?aa=tom

var arr = data.split('=');
// alert(arr);/aa,tom

var name = arr[1];
oSpan.innerHTML = name;
}
</script>
</head>
<body>
<div>歡迎<span id="span01"></span>訪問我的主頁</div>
</body>
</html>

math

例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Math</title>
<script type="text/javascript">
// var num = Math.random();
// alert(num);//彈出0-1之間的隨機數(shù)

var a = 10;
var b = 20;
// var num = Math.random()*(b-a)+a;
// alert(num);//彈出10-20之間的隨機數(shù)

var arr = [];
for(var i=0; i<20; i++){
// var num = Math.floor(Math.random()*(b-a)+a);//向下取整,10-19
var num = Math.floor(Math.random()*(b-a + 1)+a);//向下取整,10-20

arr.push(num);//生成一個數(shù)就放進數(shù)組
}
alert(arr);//17,20,20,11,11,19,17,16,10,11,16,11,18,13,13,11,17,14,19,19
</script>
</head>
<body>

</body>
</html>
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容