JavaScript開発者向けの24のヒント

翻訳者から:この記事のオリジナルの日付は2009年1月であるにもかかわらず、その関連性は今でも失われていません。 1年以上JavaScriptを使用している人でさえも、自分にとって有益なものを見つけることを願っています。

1. ==の代わりに===を使用します


JavaScriptには、=== /!==と== /!=の2種類の比較演算があります。 比較のために常に最初のペアを使用するのが良い形であると考えられています。
「2つのオペランドの型と値が同じ場合、===はtrueを返し、!== falseを返します」
JavaScript:良い部分


2.評価=悪


慣れていない人のために、eval関数はJavaScriptコンパイラへのアクセスを提供します。 つまり 文字列変数に記述されたコマンドを実行できます。これをパラメーターとしてevalに渡します。
これはプログラムの速度を低下させるだけでなく、アプリケーションに巨大なセキュリティホールを発生させることにもつながります。 これは悪いです。 可能であればこれを避けてください。

3.短い文章を使用しないでください


技術的には、中括弧やセミコロンなしでコードを書くことができます。 ほとんどのブラウザは、次のコードを正しく解釈します。

if(someVariableExists)  
   x = false


?

if(someVariableExists)  
   x = false  
   anotherFunctionCall();  


-

if(someVariableExists) {  
   x = false;  
   anotherFunctionCall();  
}  


. :

if(someVariableExists) {  
   x = false;  
}  
anotherFunctionCall();  


. , , . , . ( . . .)

if(2 + 2 === 4) return 'nicely done';  


4. JS Lint


JSLint ( debugger, — . .), . .
JSLint JavaScript . , . , . JSLint - . . .”
– JSLint Documentation

, JSLint , .

IDE JetBrains WebStorm/PyCharm/PHPStorm JSLint.
image
. . .


5.


— . . .
JS — , body.
<p>And now you know my favorite kinds of corn. </p>  
<script type="text/javascript" src="path/to/file.js"></script>  
<script type="text/javascript" src="path/to/anotherFile.js"></script>  
</body>  
</html>


6. 'for"


«for» .

for(var i = 0; i < someArray.length; i++) {  
   var container = document.getElementById('container');  
   container.innerHtml += 'my number: ' + i;  
   console.log(i);  
}  


#container.

var container = document.getElementById('container');  
for(var i = 0, len = someArray.length; i < len;  i++) {  
   container.innerHtml += 'my number: ' + i;  
   console.log(i);  
}  

.

7.


For . .
var arr = ['item 1', 'item 2', 'item 3', ...];  
var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';  

, ( ) .

( join()), .
— James Padolsey, james.padolsey.com


8.


« , , .»
— Douglas Crockford

var name = 'Jeffrey';  
var lastName = 'Way';  
  
function doSomething() {...}  
  
console.log(name); // Jeffrey -- or window.name  



var DudeNameSpace = {  
   name : 'Jeffrey',  
   lastName : 'Way',  
   doSomething : function() {...}  
}  
console.log(DudeNameSpace.name); // Jeffrey  

, , «DudeNameSpace».

9.


, . . -? , .
// Cycle through array and echo out each name.   
for(var i = 0, len = array.length; i < len; i++) {  
   console.log(array[i]);  
}  


10. (progressive enchantment)


JavaScript. « JS, ». .
Javascript? ( the Web Developer Toolbar .) . JS . JavaScript.

« » Progressive Enhancement - Graceful Degradation. . .

11. «SetInterval» «SetTimeOut»


:

setInterval(  
"document.getElementById('container').innerHTML += 'My new number: ' + i", 3000  
);  


, «eval». -. .

setInterval(someFunction, 3000);  


12. with


with . .

with (being.person.man.bodyparts) {  
   arms = true;  
   legs = true;  
}  



being.person.man.bodyparts.arms = true;  
being.person.man.bodyparts.legs= true;  


, . :

var o = being.person.man.bodyparts;  
o.arms = true;  
o.legs = true;  


13. {} New Object()


JavaScript. «new»,

var o = new Object();  
o.name = 'Jeffrey';  
o.lastName = 'Way';  
o.someFunction = function() {  
   console.log(this.name);  
}  


« » . , c


var o = {  
   name: 'Jeffrey',  
   lastName = 'Way',  
   someFunction : function() {  
      console.log(this.name);  
   }  
};  


— , {}

var o = {};  


, . .
— dyn-web.com, http://ww.dyn-web.com/tutorials/obj_lit.php


14. [] new Array()


.

var a = new Array();  
a[0] = "Joe";  
a[1] = 'Plumber';  



var a = ['Joe','Plumber'];  

« JavaSript — , . : — . — .
Douglas Crockford


15. ? „var“


var someItem = 'some string';  
var anotherItem = 'another string';  
var oneMoreItem = 'one more string';  




var someItem = 'some string',  
    anotherItem = 'another string',  
    oneMoreItem = 'one more string';  

. - , .

17. ,


, .

var someItem = 'some string'  
function doSomething() {  
  return 'something'  
}  


.


var someItem = 'some string';  
function doSomething() {  
  return 'something';  
}  


:
armed , .

ECMA (eng):
ECMAScript ( , , -, do-while, continue, break, return, throw) . . , , . , , .


18. „for… in“


. if hasOwnProperty

for(key in object) {  
   if(object.hasOwnProperty(key)) {  
      ...then do something...  
   }  
}  

„JavaScript: The Good Parts“ Douglas Crockford.

Object.prototype.hasOwnProperty . JavaScript Garden

for(prop in object) if (object.hasOwnProperty(prop)) {
    //...
}

.
. .


19.


? .

function TimeTracker(){  
 console.time("MyTimer");  
 for(x=5000; x > 0; x--){}  
 console.timeEnd("MyTimer");  
}


20. , , ...


( ), - . . JavaScript-.

Object-Oriented JavaScript
JavaScript: The Good Parts
Learning jQuery 1.3
Learning JavaScript

. !

21. Self-Executing Functions


- . .

(function doSomething() {
return {
name: 'jeff',
lastName: 'way'
};
})();

Immediately-Invoked Function Expression. . JavaScript Garden. . .

22. JavaScript


— ?
— , !
— !
— , !
— Sponge Bob Square Pants

. . .

JavaScript-, jQuery Mootools — AJAX. JavaScript ( )
jQuery „each“ , „for“ .

23. JSON.Parse


JavaScript 2 JSON, ( 2009), . Douglas Crockford, JSON, , . .
JSON, .

var response = JSON.parse(xhr.responseText);  
  
var container = document.getElementById('container');  
for(var i = 0, len = response.length; i < len; i++) {  
  container.innerHTML += '<li>' + response[i].name + ' : ' + response[i].email + '</li>';  
}  


C 4 , IE7 . caniuse.com/#search=JSON.parse
, jQuery json application-type: „application/json“ „text/javascript“, - $.get, $.post $.ajax. . .


24. „language“


- language script.

<script type="text/javascript" language="javascript">  
...  
</script>  

. .

:
JavaScript- :
Javascript Garden — english,
javascript.ru — http://learn.javascript.ru/

, . . .

Source: https://habr.com/ru/post/J175283/


All Articles