ホームページ  >  記事  >  ウェブフロントエンド  >  JS の時間オブジェクトと参照型

JS の時間オブジェクトと参照型

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-08 14:45:581634ブラウズ

今回は、JS の時間オブジェクトと参照型について説明します。JS の時間オブジェクトと参照型を使用する際の 注意事項 について説明します。

基本的なタイプは何ですか?複合型とは何ですか?特徴は何ですか?

基本型: 文字列型、Null 型、数値型、未定義型、ブール型
複合型: オブジェクト型
機能:
文字列型: 文字列は Unicode 文字のシーケンスであり、一般的に
string として知られており、double を使用できます引用符または一重引用符は、違いがなく、一致するだけであることを示します Null 型: Null 型には値が 1 つだけあります: null、null ポインター、つまり存在しないものを表します
数値型:
JavaScript の番号整数と浮動小数点数の違いは、それらがすべて Number 型であり、10 進数、8 進数、および 16 進数を表すことができるということです。 未定義型には、値が 1 つだけあります。これは、変数が宣言されているだけで初期化されていないことを意味します。つまり、このポインターは存在しますが、このポインターはスペースを指していませんブール型: ブール型には 2 つの値があります: 1.true2.false

オブジェクト クラス
型:オブジェクト (オブジェクト) は 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。

Code

現在時刻から指定された日付までの間隔を取得する関数を作成します。

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);  // 二零一五年一月八日

コード:

方法 1:


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);  // 二零一五年一月八日

方法 2:

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 中国語に関する他の関連記事に注目してください。 Webサイト!

関連記事:

単純なバブルと双方向バブルソートのケース


画像をダウンロードするためのJavaScriptスクリプト

以上がJS の時間オブジェクトと参照型の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。