搜尋
首頁web前端html教學JS的時間物件與參考類型

JS的時間物件與參考類型

Mar 08, 2018 pm 02:45 PM
javascript引用類型

這次帶給大家JS的時間物件與引用類型,使用JS時間物件與引用類型的注意事項有哪些,以下就是實戰案例,一起來看一下。

基礎型別有哪些?複雜類型有哪些?有什麼特徵?
基礎類型:String 類型、Null 類型、Number 類型、Undefined類型、Boolean 類型
複雜類型:Object 類型
作用:
String類型: String是Unicode字元組成的序列,俗稱字串,可以用雙引號或單引號表示,沒有區別,匹配即可
Null類型: Null型別只有一個值:null,表示空指針,也就是不存在的東西
Number類型: JavaScript的數字類型和其它語言有所不同,沒有整數和浮點數的區別,統一都是Number類型,可以表示十進制、八進制、十六進制
Undefined類型: Undefined類型也只有一個值undefined,表示變數只被聲明,沒有被初始化,也就是有這個指針,但是這個指針沒有指向任何空間
Boolean類型: Boolean有兩個值:1.true2.false
Object類別類型: 物件(object)是JavaScript的核心概念,也是最重要的資料型別。 JavaScript的所有資料都可以被視為對象,這也是我們常說的一切皆為對象。

如下程式碼的輸出? 為什麼?

var obj1 = {a:1, b:2};
var obj2 = {a:1, b:2};
console.log(obj1 == obj2);//false,由于obj1与obj2所储存的位置不同,所以false。
console.log(obj1 = obj2);//obj2赋值给obj1 输出 Object { a=1,  b=2} 内容。
console.log(obj1 == obj2);//把obj2赋值给obj1,所以obj2与obj1存储的位置是一样的,所以为true。

程式碼

#寫一個函數getIntv,取得從目前時間到指定日期的間隔時間。
var str = getIntv("2016-01-08");
console.log(str);  // 距離除夕還有20 天15 小時20 分10 秒
程式碼:

var str = getIntv("2017-01-27");
function getIntv(time){
var end = new Date(time);
var now = new Date();
var timer = end-now;
var day = Math.floor(timer/(1000606024));
var timer1 = timer%(1000606024)
var hour = Math.floor(timer1/(10006060));
var timer2 = timer1%(10006060);
var min = Math.floor(timer2/(100060));
var timer3 = timer2%(100060);
var sec = Math.floor(timer3/1000);
return ("距"+time+"还有"+day+"天"+hour+"小时"+min+"分钟"+sec+"秒")
}
console.log(str);  // 距2017-01-27还有 20 天 15 小时 20 分 10 秒

把數字日期改成中文日期,如:

var str = getChsDate('2015-01-08');
console.log(str);  // 二零一五年一月八日

代碼:
方法一:

var str = getChsDate('2015-01-08');
function getChsDate(time){
time = time.replace(/-/g,'');
var arr = []
for(i=0;i<time.length;i++){
switch(time[i]){
case &#39;0&#39;: arr.push(&#39;零&#39;);break;
case &#39;1&#39;: arr.push(&#39;一&#39;);break;
case &#39;2&#39;: arr.push(&#39;二&#39;);break;
case &#39;3&#39;: arr.push(&#39;三&#39;);break;
case &#39;4&#39;: arr.push(&#39;四&#39;);break;
case &#39;5&#39;: arr.push(&#39;五&#39;);break;
case &#39;6&#39;: arr.push(&#39;六&#39;);break;
case &#39;7&#39;: arr.push(&#39;七&#39;);break;
case &#39;8&#39;: arr.push(&#39;八&#39;);break;
case &#39;9&#39;: arr.push(&#39;九&#39;);break;
}
}
console.log(time);
arr.splice(4,0,&#39;年&#39;);
arr.splice(7,0,&#39;月&#39;);
arr.splice(10,0,&#39;日&#39;);
arr = arr.join(&#39;&#39;);
return arr;
}//这种方法有一定缺陷,比如&#39;2016-02-28&#39;,输出&#39;二零一六年零二月二八日&#39;,读起来很别扭
console.log(str);  // 二零一五年一月八日

方法二:

function getChsDate(date){
var newDate =date.split("-"),
year = newDate[0],
month = newDate[1],
day = newDate[2];
var dict ={"0":"零","1": "一", "2": "二", "3": "三","4": "四","5": "五","6": "六","7": "七", "8": "八", "9": "九", "10": "十", "11": "十一", "12": "十二","13": "十三", "14": "十四",  "15": "十五", "16": "十六", "17": "十七", "18": "十八", "19": "十九","20": "二十","21": "二十一", "22": "二十二", "23": "二十三", "24": "二十四",  "25": "二十五","26": "二十六", "27": "二十七", "28": "二十八", "29": "二十九", "30": "三十", "31": "三十一"};
return dict[year[0]]+dict[year[1]]+dict[year[2]]+dict[year[3]] + &#39;年&#39; + dict[Number(month)] +&#39;月&#39; + dict[Number(day)] + &#39;日&#39;;
};
getChsDate(&#39;2015-01-08&#39;);//"二零一五年一月八日"

寫一個函數取得n天前的日期:

var lastWeek =  getLastNDays(7); // ‘2016-01-08’
  var lastMonth = getLastNDays(30); //&#39;2015-12-15&#39;

程式碼:

var lastWeek =  getLastNDays(7); // ‘2016-01-08’
var lastMonth = getLastNDays(30); //&#39;2015-12-15&#39;
function getLastNDays(dater){
var now = Date.now();
var timer = dater2460601000;
var past = new Date(now - timer);
var year = past.getFullYear();
var month = past.getMonth()+1;//月份从0开始算;
var day = past.getDate();
return year+&#39;-&#39;+month+&#39;-&#39;+day;
}
console.log(lastWeek);
console.log(lastMonth);

完善如下程式碼,如:
##

var Runtime = (function(){
//code here ...
return {
start: function(){
//code here ...
},
end: function(){
//code here ...
},
get: function(){
//code here ...
}
};
}());
Runtime.start();
//todo somethint
Runtime.end();
console.log(  Runtime.get() );

代碼:


var Runtime = (function(){
var time1;
var time2;
return {
start: function(){
time1=Date.now();
},
end: function(){
time2=Date.now();
},
get: function(){
return (time2-time1);
}
};
}());
Runtime.start();
for(var i=0;i<100;i++){
console.log(1);//输出100次1
}
Runtime.end();
console.log(  Runtime.get() );//运行了22ms

樓梯有200級,每次走1級或是2級,從底走到頂一共有多少種走法?以程式碼(遞歸)實作


function fn(num) {
if (num==0||num==1) {
return 1;
}
else {
return fn(num-1)+fn(num-2);
}
}
console.log(fn(200));

寫一個json物件深拷貝的方法,json物件可以多層嵌套,值可以是字串、數字、布林、json物件中的任意項


var json={
"name":"yahoo",
"age":"14",
"sex":"man",
"address":
{
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
}
}
function JSON(arr){
var newjson= {};
for(key in arr){
if(typeof arr[key]=="object"){
newjson[key]=JSON(arr[key]);
}
else{
newjson[key]=arr[key];
}
}
return newjson;
}
console.log(JSON(json))

寫一個陣列深拷貝的方法,陣列裡的值可以是字串、數字、布林、陣列中的任意項目


var arr=[1,"2",3,[1,2,3,4],true]
function JSON(arr){
var newarr=[];
for(key in arr){
if(typeof arr[key] ==&#39;Array&#39;) {
newarr[key]=JSON(arr[key]);
}
else{
newarr[key]=arr[key];
}
}
return newarr;
}
console.log(JSON(arr))

寫一個深拷貝的方法,拷貝物件以及內部嵌套的值可以是字串、數字、布林、陣列、json物件中的任意項


var O={
name:"yahoo",
age:14,
other:[1,2,true,"yahoo",3],
man:{
"man1":"woman",
"man2":"man2"
},
aid:true,
address:
{
streetAddress: "21 2nd Street",
city: "New York",
state: "NY",
postalCode: "10021"
}
}
function JOSN(O){
var newarr={};
for(key in O){
if (typeof O[key] ===&#39;Array&#39;){
newarr[key]=JOSN(O[key]);
}
else{
newarr[key]=O[key];
}
}
return newarr;
}
console.log(JOSN(O))

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

簡單的冒泡以及雙向冒泡排序案列

##用來下載圖片的javascript腳本

以上是JS的時間物件與參考類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
為什麼HTML標籤對Web開發很重要?為什麼HTML標籤對Web開發很重要?May 02, 2025 am 12:03 AM

htmltagsareessentialforwebdevelopmentastheyandendenhancewebpages.1)semantictagsimproveaccessibilityandseo.2)semanteLayOut,語義和互動性。 3)poseriblesibilityandseoandseo.3)poseriblesoftagscanoftagscanoftagscanoptagscanoptimizeperefeneandimizeanDenSuroceRecRoscRoss-BrowserCrowserCercerComercompatibility。

說明將一致的編碼樣式用於HTML標籤和屬性的重要性。說明將一致的編碼樣式用於HTML標籤和屬性的重要性。May 01, 2025 am 12:01 AM

一致的HTML編碼風格很重要,因為它提高了代碼的可讀性、可維護性和效率。 1)使用小寫標籤和屬性,2)保持一致的縮進,3)選擇並堅持使用單引號或雙引號,4)避免在項目中混合使用不同風格,5)利用自動化工具如Prettier或ESLint來確保風格的一致性。

如何在 Bootstrap 4 中實現多項目輪播?如何在 Bootstrap 4 中實現多項目輪播?Apr 30, 2025 pm 03:24 PM

在Bootstrap4中實現多項目輪播的解決方案在Bootstrap4中實現多項目輪播並不是一件簡單的事情。雖然Bootstrap...

deepseek官網是如何實現鼠標滾動事件穿透效果的?deepseek官網是如何實現鼠標滾動事件穿透效果的?Apr 30, 2025 pm 03:21 PM

如何實現鼠標滾動事件穿透效果?在我們瀏覽網頁時,經常會遇到一些特別的交互設計。比如在deepseek官網上,�...

HTML 視頻的播放控件樣式怎麼修改HTML 視頻的播放控件樣式怎麼修改Apr 30, 2025 pm 03:18 PM

無法直接通過CSS修改HTML視頻的默認播放控件樣式。 1.使用JavaScript創建自定義控件。 2.通過CSS美化這些控件。 3.考慮兼容性、用戶體驗和性能,使用庫如Video.js或Plyr可簡化過程。

在手機上使用原生select會帶來哪些問題?在手機上使用原生select會帶來哪些問題?Apr 30, 2025 pm 03:15 PM

在手機上使用原生select的潛在問題在開發移動端應用時,我們常常會遇到選擇框的需求。通常情況下,開發者傾...

在手機上使用原生select的弊端是什麼?在手機上使用原生select的弊端是什麼?Apr 30, 2025 pm 03:12 PM

在手機上使用原生select的弊端是什麼?在移動設備上開發應用時,選擇合適的UI組件是非常重要的。許多開發者�...

如何使用Three.js和Octree優化房間內第三人稱漫遊的碰撞處理?如何使用Three.js和Octree優化房間內第三人稱漫遊的碰撞處理?Apr 30, 2025 pm 03:09 PM

使用Three.js和Octree優化房間內第三人稱漫遊的碰撞處理在Three.js中使用Octree實現房間內的第三人稱漫遊並添加碰�...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具