Maison  >  Article  >  interface Web  >  Objets temporels et types de référence dans JS

Objets temporels et types de référence dans JS

php中世界最好的语言
php中世界最好的语言original
2018-03-08 14:45:581633parcourir

Cette fois, je vais vous présenter les objets temporels et les types de référence JS. Quelles sont les précautions lors de l'utilisation des objets temporels et des types de référence JS. Voici des cas pratiques, jetons un coup d'œil.

Quels sont les types de base ? Quels sont les types complexes ? Quelles sont les caractéristiques ?
Types de base : type chaîne, type nul, type numérique, type non défini, type booléen
Type complexe : type d'objet
Fonction :
Type chaîne : la chaîne est une séquence de caractères Unicode, communément appelés String , qui peut être représentée par des guillemets doubles ou des guillemets simples, il n'y a pas de différence, il suffit de faire correspondre
Type Null : le type Null n'a qu'une seule valeur : null, qui représente un pointeur nul, ce qui est quelque chose cela n'existe pas
Type de nombre : Le type de nombre de JavaScript est différent des autres langages. Il n'y a aucune différence entre les nombres entiers et les nombres à virgule flottante. Ce sont tous des types de nombres, qui peuvent représenter des nombres décimaux, octaux. , et hexadécimal.
Type non défini : Le type non défini n'a également qu'une seule valeur, undéfini, ce qui signifie que la variable a seulement été déclarée et non initialisée, c'est-à-dire qu'il y a ce pointeur, mais ce pointeur ne pointe vers aucun. space
Type booléen : le booléen a deux valeurs : 1.true2.false
Classe d'objettype : L'objet est le concept de base de JavaScript et le type de données le plus important. Toutes les données en JavaScript peuvent être considérées comme des objets, c'est pourquoi on dit souvent que tout est un objet.

La sortie du code suivant ? Pourquoi ?

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

Écrivez une fonction getIntv pour obtenir l'intervalle entre l'heure actuelle et la date spécifiée .
var str = getIntv("2016-01-08");
console.log(str); // Il reste 20 jours, 15 heures, 20 minutes et 10 secondes avant le réveillon du Nouvel An
Code :

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 秒

Changez la date numérique en date chinoise, par exemple :

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

Code :
Méthode 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);  // 二零一五年一月八日

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

Écrire une fonction pour obtenir la date il y a n jours :

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

Code :

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);

est complété comme suit Code, tel que :

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() );

Code :

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

Il y a 200 escaliers, 1 ou 2 niveaux chacun temps, de bas en haut. Combien y a-t-il de mouvements ? Utilisez du code (de manière récursive) pour implémenter

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

afin d'écrire une copie complète d'un objet json. L'objet json peut être imbriqué dans plusieurs couches et la valeur peut être n'importe quelle chaîne, nombre ou booléen. , ou objet 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))

Écrivez une méthode de copie complète d'un tableau. La valeur dans le tableau peut être une chaîne, un nombre, un booléen ou n'importe quel élément du tableau. 🎜>

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))
Écrivez une méthode de copie approfondie. L'objet copié et la valeur imbriquée interne peuvent être n'importe quel élément parmi les chaînes, les nombres, les booléens, les tableaux et les objets 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))
Je crois avoir lu le cas dans cet article. Vous maîtrisez la méthode. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture connexe :

Cas de tri à bulles simple et bidirectionnel

Javascript utilisé pour télécharger des images Script

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn