Heim Web-Frontend js-Tutorial Eine vollständige Sammlung von Javascript-Kenntnissen, die Sie für die Webentwicklung benötigen. Javascript-Kenntnisse

Eine vollständige Sammlung von Javascript-Kenntnissen, die Sie für die Webentwicklung benötigen. Javascript-Kenntnisse

May 16, 2016 pm 03:14 PM

JavaScript ist die beliebteste Programmiersprache der Welt und kann für die Webentwicklung, die Entwicklung mobiler Anwendungen (PhoneGap, Appcelerator), die serverseitige Entwicklung (Node.js und Wakanda) usw. verwendet werden. Für viele Anfänger ist JavaScript auch die erste Sprache, die in die Welt des Programmierens einsteigt. Es kann verwendet werden, um ein einfaches Eingabeaufforderungsfeld im Browser anzuzeigen oder den Roboter über Nodebot oder Nodruino zu steuern. Entwickler, die JavaScript-Code mit klarer Struktur und hoher Leistung schreiben können, sind heute die gefragtesten Personen auf dem Personalbeschaffungsmarkt.

In diesem Artikel werde ich einige JavaScript-Tipps, Geheimnisse und Best Practices teilen, die bis auf wenige Ausnahmen sowohl für die JavaScript-Engine des Browsers als auch für den serverseitigen JavaScript-Interpreter gelten.

Der Beispielcode in diesem Artikel hat den Test auf der neuesten Version von Google Chrome 30 (V8 3.20.17.15) bestanden.

  1. Stellen Sie sicher, dass Sie das Schlüsselwort var verwenden, wenn Sie einer Variablen zum ersten Mal einen Wert zuweisen

Wenn eine Variable direkt zugewiesen wird, ohne deklariert zu werden, wird sie standardmäßig als neue globale Variable verwendet. Vermeiden Sie die Verwendung globaler Variablen.

 2. Verwenden Sie ===, um ==
zu ersetzen

Die Operatoren == und != konvertieren Datentypen bei Bedarf automatisch. Aber === und !== nicht, sie vergleichen Werte und Datentypen gleichzeitig, was sie auch schneller macht als == und !=.

 [10] === 10 // is false
  [10] == 10 // is true
  '10' == 10 // is true
  '10' === 10 // is false
   [] == 0 // is true
   [] === 0 // is false
   '' == false // is true but true == "a" is false
   '' === false // is false
Nach dem Login kopieren

 3. Die logischen Ergebnisse von unterbestimmt, null, 0, falsch, NaN und leerer Zeichenfolge sind alle falsch

 4. Verwenden Sie am Ende der Zeile ein Semikolon

In der Praxis ist es am besten, Semikolons zu verwenden. Es macht nichts, wenn Sie vergessen, sie zu schreiben. In den meisten Fällen fügt der JavaScript-Interpreter sie automatisch hinzu. Weitere Informationen darüber, warum Semikolons verwendet werden, finden Sie im Artikel „Die Wahrheit über Semikolons in JavaScript“.

 5. Verwenden Sie den Objektkonstruktor

  function Person(firstName, lastName){
this.firstName = firstName;
this.lastName = lastName;
  }
  var Saad = new Person("Saad", "Mousliki");
Nach dem Login kopieren

6. Verwenden Sie Typ, Instanz und Konstruktor sorgfältig

•typeof: Unärer JavaScript-Operator, der verwendet wird, um den ursprünglichen Typ der Variablen in Form einer Zeichenfolge zurückzugeben. Beachten Sie, dass typeof null auch ein Objekt zurückgibt (Array, Array, Zeit, Datum usw.). Rückgabeobjekt.
•constructor: Interne Prototypeigenschaft, kann durch Code
überschrieben werden •instanceof: JavaScript-Operator, er sucht im Konstruktor in der Prototypenkette und gibt „true“ zurück, wenn er gefunden wird, andernfalls gibt er „false“ zurück 

var arr = ["a", "b", "c"];
  typeof arr; // 返回 "object"
  arr instanceof Array // true
  arr.constructor(); //[]
Nach dem Login kopieren

  7. Selbstaufruffunktionen nutzen

Funktionen werden direkt nach der Erstellung automatisch ausgeführt und werden normalerweise als selbstaufgerufene anonyme Funktionen (selbstaufgerufene anonyme Funktion) oder direkt aufgerufene Funktionsausdrücke (unmittelbar aufgerufener Funktionsausdruck) bezeichnet. Das Format ist wie folgt:

 (function(){
// 置于此处的代码将自动执行
  })(); 
  (function(a,b){
var result = a+b;
return result;
  })(10,20)
Nach dem Login kopieren

 8. Erhalten Sie zufällig Mitglieder aus dem Array

var items = [12, 548 , 'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' , 2145 , 119];
var randomItem = items[Math.floor(Math.random() * items.length)];
Nach dem Login kopieren

  9. Erhalten Sie Zufallszahlen innerhalb des angegebenen Bereichs

Diese Funktion ist besonders nützlich, wenn gefälschte Daten zu Testzwecken generiert werden, beispielsweise Gehälter innerhalb eines bestimmten Bereichs.

var x = Math.floor(Math.random() * (max - min + 1)) + min;
Nach dem Login kopieren

10. Erzeugen Sie ein digitales Array von 0 bis zum angegebenen Wert

var numbersArray = [] , max = 100;
  for( var i=1; numbersArray.push(i++) < max;); // numbers = [1,2,3 ... 100]
Nach dem Login kopieren

 11. Zufällige alphanumerische Zeichenfolgen generieren

  function generateRandomAlphaNum(len) {
var rdmString = "";
for( ; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));
return rdmString.substr(0, len);
  }
Nach dem Login kopieren

 12. Stören Sie die Ordnung des digitalen Arrays

var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
  numbers = numbers.sort(function(){ return Math.random() - 0.5});
  /* numbers 数组将类似于 [120, 5, 228, -215, 400, 458, -85411, 122205] */
Nach dem Login kopieren

Hier wird die integrierte Array-Sortierfunktion von JavaScript verwendet. Eine bessere Möglichkeit besteht darin, sie mit speziellem Code zu implementieren (z. B. dem Fisher-Yates-Algorithmus).

  13. Leerzeichen aus Zeichenfolgen entfernen

Sprachen wie Java, C# und PHP haben spezielle Funktionen zum Entfernen von String-Leerzeichen implementiert, aber in JavaScript gibt es keine solche Funktion. Sie können den folgenden Code verwenden, um eine Trimmfunktion für das String-Objekt auszuführen:

String.prototype.trim = function(){return this.replace(/^\s+|\s+$/g, "");};
Nach dem Login kopieren

Die neue JavaScript-Engine verfügt bereits über eine native Implementierung von trim().

 14. Zwischen Arrays anhängen

  var array1 = [12 , "foo" , {name "Joe"} , -2458];
  var array2 = ["Doe" , 555 , 100];
  Array.prototype.push.apply(array1, array2);
  /* array1 值为 [12 , "foo" , {name "Joe"} , -2458 , "Doe" , 555 , 100] */
Nach dem Login kopieren

 15. Objekt in Array konvertieren

var argArray = Array.prototype.slice.call(arguments);
Nach dem Login kopieren

 16. Überprüfen Sie, ob es sich um eine Zahl handelt

function isNumber(n){
return !isNaN(parseFloat(n)) && isFinite(n);
  }
Nach dem Login kopieren

 17. Überprüfen Sie, ob es sich um ein Array handelt

  function isArray(obj){
return Object.prototype.toString.call(obj) === '[object Array]' ;
  }
Nach dem Login kopieren

  但如果toString()方法被重写过得话,就行不通了。也可以使用下面的方法:

Array.isArray(obj); // its a new Array method
Nach dem Login kopieren

  如果在浏览器中没有使用frame,还可以用instanceof,但如果上下文太复杂,也有可能出错。

var myFrame = document.createElement('iframe');
  document.body.appendChild(myFrame);
  var myArray = window.frames[window.frames.length-1].Array;
  var arr = new myArray(a,b,10); // [a,b,10] 
  // myArray 的构造器已经丢失,instanceof 的结果将不正常
  // 构造器是不能跨 frame 共享的
  arr instanceof Array; // false
Nach dem Login kopieren

  18、获取数组中的最大值和最小值

 var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
  var maxInNumbers = Math.max.apply(Math, numbers);
  var minInNumbers = Math.min.apply(Math, numbers);
Nach dem Login kopieren

  19、清空数组

var myArray = [12 , 222 , 1000 ]; 
  myArray.length = 0; // myArray will be equal to [].
Nach dem Login kopieren

  20、不要直接从数组中delete或remove元素

  如果对数组元素直接使用delete,其实并没有删除,只是将元素置为了undefined。数组元素删除应使用splice。

  切忌:

 var items = [12, 548 ,'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' ,2154 , 119 ];
  items.length; // return 11
  delete items[3]; // return true
  items.length; // return 11
  /* items 结果为 [12, 548, "a", undefined × 1, 5478, "foo", 8852, undefined × 1, "Doe", 2154, 119] */
Nach dem Login kopieren

  而应:

  var items = [12, 548 ,'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' ,2154 , 119 ];
  items.length; // return 11
  items.splice(3,1) ;
  items.length; // return 10
  /* items 结果为 [12, 548, "a", 5478, "foo", 8852, undefined × 1, "Doe", 2154, 119]
Nach dem Login kopieren

  删除对象的属性时可以使用delete。

  21、使用length属性截断数组

  前面的例子中用length属性清空数组,同样还可用它来截断数组:

var myArray = [12 , 222 , 1000 , 124 , 98 , 10 ]; 
  myArray.length = 4; // myArray will be equal to [12 , 222 , 1000 , 124].
Nach dem Login kopieren

  与此同时,如果把length属性变大,数组的长度值变会增加,会使用undefined来作为新的元素填充。length是一个可写的属性。

myArray.length = 10; // the new array length is 10
myArray[myArray.length - 1] ; // undefined
Nach dem Login kopieren

  22、在条件中使用逻辑与或

var foo = 10; 
  foo == 10 && doSomething(); // is the same thing as if (foo == 10) doSomething();
  foo == 5 || doSomething(); // is the same thing as if (foo != 5) doSomething();
Nach dem Login kopieren

  逻辑或还可用来设置默认值,比如函数参数的默认值。

  function doSomething(arg1){
arg1 = arg1 || 10; // arg1 will have 10 as a default value if it's not already set
  }
Nach dem Login kopieren

   23、使得map()函数方法对数据循环

  var squares = [1,2,3,4].map(function (val) { 
return val * val; 
  });
  // squares will be equal to [1, 4, 9, 16]
Nach dem Login kopieren

  24、保留指定小数位数

var num =2.443242342;
  num = num.toFixed(4); // num will be equal to 2.4432
Nach dem Login kopieren

  注意,toFixec()返回的是字符串,不是数字。

  25、浮点计算的问题

  0.1 + 0.2 === 0.3 // is false
  9007199254740992 + 1 // is equal to 9007199254740992
  9007199254740992 + 2 // is equal to 9007199254740994
Nach dem Login kopieren

  为什么呢?因为0.1+0.2等于0.30000000000000004。JavaScript的数字都遵循IEEE 754标准构建,在内部都是64位浮点小数表示,具体可以参见JavaScript中的数字是如何编码的.

  可以通过使用toFixed()和toPrecision()来解决这个问题。

  26、通过for-in循环检查对象的属性

  下面这样的用法,可以防止迭代的时候进入到对象的原型属性中。

for (var name in object) { 
  if (object.hasOwnProperty(name)) {
   // do something with name
   } 
  }
Nach dem Login kopieren

  27、逗号操作符

var a = 0;
  var b = ( a++, 99 );
  console.log(a); // a will be equal to 1
  console.log(b); // b is equal to 99
Nach dem Login kopieren

  28、临时存储用于计算和查询的变量

  在jQuery选择器中,可以临时存储整个DOM元素。

 var navright = document.querySelector('#right');
  var navleft = document.querySelector('#left');
  var navup = document.querySelector('#up');
  var navdown = document.querySelector('#down');
Nach dem Login kopieren

  29、提前检查传入isFinite()的参数

 isFinite(0/0) ; // false
  isFinite("foo"); // false
  isFinite("10"); // true
  isFinite(10); // true
  isFinite(undefined); // false
  isFinite(); // false
  isFinite(null); // true,这点当特别注意
Nach dem Login kopieren

  30、避免在数组中使用负数做索引

 var numbersArray = [1,2,3,4,5];
   var from = numbersArray.indexOf("foo") ; // from is equal to -1
   numbersArray.splice(from,2); // will return [5]
Nach dem Login kopieren

   注意传给splice的索引参数不要是负数,当是负数时,会从数组结尾处删除元素。

 31、用JSON来序列化与反序列化

 var person = {name :'Saad', age : 26, department : {ID : 15, name : "R&D"} };
  var stringFromPerson = JSON.stringify(person);
  /* stringFromPerson 结果为 "{"name":"Saad","age":26,"department":{"ID":15,"name":"R&D"}}" */
  var personFromString = JSON.parse(stringFromPerson);
  /* personFromString 的值与 person 对象相同 */
Nach dem Login kopieren

  32、不要使用eval()或者函数构造器

  eval()和函数构造器(Function consturctor)的开销较大,每次调用,JavaScript引擎都要将源代码转换为可执行的代码。

 var func1 = new Function(functionCode);
  var func2 = eval(functionCode);
Nach dem Login kopieren

  32、不要使用eval()或者函数构造器

  eval()和函数构造器(Function consturctor)的开销较大,每次调用,JavaScript引擎都要将源代码转换为可执行的代码。

var func1 = new Function(functionCode);
  var func2 = eval(functionCode);
Nach dem Login kopieren

  33、避免使用with()

  使用with()可以把变量加入到全局作用域中,因此,如果有其它的同名变量,一来容易混淆,二来值也会被覆盖。

  34、不要对数组使用for-in

  避免:

  var sum = 0; 
  for (var i in arrayNumbers) { 
   sum += arrayNumbers[i]; 
  }
Nach dem Login kopieren

  而是:

 var sum = 0; 
  for (var i = 0, len = arrayNumbers.length; i < len; i++) { 
   sum += arrayNumbers[i]; 
  }
Nach dem Login kopieren

    另外一个好处是,i和len两个变量是在for循环的第一个声明中,二者只会初始化一次,这要比下面这种写法快:

for (var i = 0; i < arrayNumbers.length; i++)
Nach dem Login kopieren

  35、传给setInterval()和setTimeout()时使用函数而不是字符串

  如果传给setTimeout()和setInterval()一个字符串,他们将会用类似于eval方式进行转换,这肯定会要慢些,因此不要使用:

setInterval('doSomethingPeriodically()', 1000); 
  setTimeout('doSomethingAfterFiveSeconds()', 5000);
Nach dem Login kopieren

  而是用:

setInterval(doSomethingPeriodically, 1000); 
  setTimeout(doSomethingAfterFiveSeconds, 5000);
Nach dem Login kopieren

  36、使用switch/case代替一大叠的if/else

  当判断有超过两个分支的时候使用switch/case要更快一些,而且也更优雅,更利于代码的组织,当然,如果有超过10个分支,就不要使用switch/case了。

  37、在switch/case中使用数字区间

  其实,switch/case中的case条件,还可以这样写:

 function getCategory(age) { 
   var category = ""; 
   switch (true) { 
   case isNaN(age): 
   category = "not an age"; 
   break; 
   case (age >= 50): 
   category = "Old"; 
   break; 
   case (age <= 20): 
   category = "Baby"; 
   break; 
   default: 
   category = "Young"; 
   break; 
  }; 
   return category; 
  } 
  getCategory(5); // 将返回 "Baby"
Nach dem Login kopieren

   38、使用对象作为对象的原型

  下面这样,便可以给定对象作为参数,来创建以此为原型的新对象:

function clone(object) { 
   function OneShotConstructor(){};
   OneShotConstructor.prototype = object; 
   return new OneShotConstructor();
  }
  clone(Array).prototype ; // []
Nach dem Login kopieren

  39、HTML字段转换函数

  function escapeHTML(text) { 
var replacements= {"<": "<", ">": ">","&": "&", "\"": """}; 
return text.replace(/[<>&"]/g, function(character) { 
return replacements[character]; 
   });
  }
Nach dem Login kopieren

   40、不要在循环内部使用try-catch-finally

  try-catch-finally中catch部分在执行时会将异常赋给一个变量,这个变量会被构建成一个运行时作用域内的新的变量。

  切忌:

var object = ['foo', 'bar'], i; 
for (i = 0, len = object.length; i <len; i++) { 
try { 
// do something that throws an exception
} 
catch (e) { 
// handle exception 
}
}
Nach dem Login kopieren

  而应该:

var object = ['foo', 'bar'], i; 
try {
for (i = 0, len = object.length; i <len; i++) { 
// do something that throws an exception
}
}
catch (e) { 
// handle exception 
}
Nach dem Login kopieren

  41、使用XMLHttpRequests时注意设置超时

  XMLHttpRequests在执行时,当长时间没有响应(如出现网络问题等)时,应该中止掉连接,可以通过setTimeout()来完成这个工作:

 var xhr = new XMLHttpRequest ();
  xhr.onreadystatechange = function () { 
   if (this.readyState == 4) { 
   clearTimeout(timeout); 
   // do something with response data
   } 
  } 
  var timeout = setTimeout( function () { 
   xhr.abort(); // call error callback 
  }, 60*1000 /* timeout after a minute */ );
  xhr.open('GET', url, true); 
  xhr.send();
Nach dem Login kopieren

  同时需要注意的是,不要同时发起多个XMLHttpRequests请求。

  42、处理WebSocket的超时

  通常情况下,WebSocket连接创建后,如果30秒内没有任何活动,服务器端会对连接进行超时处理,防火墙也可以对单位周期没有活动的连接进行超时处理。

  为了防止这种情况的发生,可以每隔一定时间,往服务器发送一条空的消息。可以通过下面这两个函数来实现这个需求,一个用于使连接保持活动状态,另一个专门用于结束这个状态。

var timerID = 0;
  function keepAlive() {
   var timeout = 15000; 
   if (webSocket.readyState == webSocket.OPEN) { 
   webSocket.send(''); 
   } 
   timerId = setTimeout(keepAlive, timeout); 
  } 
  function cancelKeepAlive() { 
   if (timerId) { 
   cancelTimeout(timerId); 
   } 
  }
Nach dem Login kopieren

  keepAlive()函数可以放在WebSocket连接的onOpen()方法的最后面,cancelKeepAlive()放在onClose()方法的最末尾。

  43、时间注意原始操作符比函数调用快,使用VanillaJS

  比如,一般不要这样:

 var min = Math.min(a,b);
  A.push(v);
Nach dem Login kopieren

  可以这样来代替:

 var min = a < b &#63; a : b;
  A[A.length] = v;
Nach dem Login kopieren

  44、开发时注意代码结构,上线前检查并压缩JavaScript代码

  别忘了在写代码时使用一个代码美化工具。使用JSLint(一个语法检查工具)并且在上线前压缩代码(比如使用JSMin)。注:现在代码压缩一般推荐 UglifyJS (https://github.com/mishoo/UglifyJS2)

  45、JavaScript博大精深,这里有些不错的学习资源

•Code Academy资源:http://www.codecademy.com/tracks/javascript
•Marjin Haverbekex编写的Eloquent JavaScript:http://eloquentjavascript.net/
•John Resig编写的Advanced JavaScript:http://ejohn.org/apps/learn/

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie erstelle ich meine eigenen JavaScript -Bibliotheken? Wie erstelle ich meine eigenen JavaScript -Bibliotheken? Mar 18, 2025 pm 03:12 PM

In Artikel werden JavaScript -Bibliotheken erstellt, veröffentlicht und aufrechterhalten und konzentriert sich auf Planung, Entwicklung, Testen, Dokumentation und Werbestrategien.

Wie optimiere ich den JavaScript -Code für die Leistung im Browser? Wie optimiere ich den JavaScript -Code für die Leistung im Browser? Mar 18, 2025 pm 03:14 PM

In dem Artikel werden Strategien zur Optimierung der JavaScript -Leistung in Browsern erörtert, wobei der Schwerpunkt auf die Reduzierung der Ausführungszeit und die Minimierung der Auswirkungen auf die Lastgeschwindigkeit der Seite wird.

Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools? Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools? Mar 18, 2025 pm 03:16 PM

In dem Artikel werden effektives JavaScript -Debuggen mithilfe von Browser -Entwickler -Tools, der Schwerpunkt auf dem Festlegen von Haltepunkten, der Konsole und der Analyse der Leistung erörtert.

Wie benutze ich Javas Sammlungsrahmen effektiv? Wie benutze ich Javas Sammlungsrahmen effektiv? Mar 13, 2025 pm 12:28 PM

In diesem Artikel wird der effektive Gebrauch des Sammlungsrahmens von Java untersucht. Es betont die Auswahl geeigneter Sammlungen (Liste, Set, Karte, Warteschlange) basierend auf Datenstruktur, Leistungsanforderungen und Thread -Sicherheit. Optimierung der Sammlungsnutzung durch effizientes Gebrauch

Wie verwende ich Quellkarten zum Debuggen, um den JavaScript -Code zu debuggen? Wie verwende ich Quellkarten zum Debuggen, um den JavaScript -Code zu debuggen? Mar 18, 2025 pm 03:17 PM

In dem Artikel wird erläutert, wie Quellkarten zum Debuggen von JavaScript verwendet werden, indem er auf den ursprünglichen Code zurückgegeben wird. Es wird erläutert, dass Quellenkarten aktiviert, Breakpoints eingestellt und Tools wie Chrome Devtools und WebPack verwendet werden.

Erste Schritte mit Chart.js: Kuchen-, Donut- und Bubble -Diagramme Erste Schritte mit Chart.js: Kuchen-, Donut- und Bubble -Diagramme Mar 15, 2025 am 09:19 AM

In diesem Tutorial wird erläutert, wie man mit Diagramm.js Kuchen-, Ring- und Bubble -Diagramme erstellt. Zuvor haben wir vier Chart -Arten von Charts gelernt. Erstellen Sie Kuchen- und Ringdiagramme Kreisdiagramme und Ringdiagramme sind ideal, um die Proportionen eines Ganzen anzuzeigen, das in verschiedene Teile unterteilt ist. Zum Beispiel kann ein Kreisdiagramm verwendet werden, um den Prozentsatz der männlichen Löwen, weiblichen Löwen und jungen Löwen in einer Safari oder den Prozentsatz der Stimmen zu zeigen, die verschiedene Kandidaten bei der Wahl erhalten. Kreisdiagramme eignen sich nur zum Vergleich einzelner Parameter oder Datensätze. Es ist zu beachten, dass das Kreisdiagramm keine Entitäten ohne Wert zeichnen kann, da der Winkel des Lüfters im Kreisdiagramm von der numerischen Größe des Datenpunkts abhängt. Dies bedeutet jede Entität ohne Anteil

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

See all articles