Javascriptの罠


    (3   )
                。                            ,                     。 if(var1 == var2){//statement}                :               。          ,      true     。 if(var1 = var2){} //   true。 var2   var1JavaScript    ,   switch   。 JavaScript case   ,      。 var myVar = 5;
if(myVar == '5'){ //  true,  JavaScript    
 alert("hi");  //  alert   ,  JavaScript         
}
switch(myVar){
 case '5':
 alert("hi"); //  alert     ,         
}
  
  JavaScript     。              。       ,              ,            (       )。

var bad  = '<ul id="myId">
  <li>some text</li>
  <li>more text</li>
  </ul>'; //          

var good = '<ul id="myId">' +
 ‘<li>some text</li>‘ +
 ‘<li>more text</li>‘ +
 ‘</ul>’; //   
                              :                      。

          ,           ,        ,                       :                    ,                。

     
     
JavaScript               :            ,                  。        ,               。  ,      ,           。

  var            。    var       ,           。      ,               ,      var     :

anonymousFuntion1 = function(){
 globalvar = 'global scope'; //    ,  “var”   
 return localvar;
}();
alert(globalvar); //  “global scope”,             

anonymousFuntion2 = function(){
 var localvar = 'local scope'; //  “var”    
 return localvar;
}();
alert(localvar); //   “localvar   ”。      localvar
                 。                ,             ,     。                ,                   ,          window     。

var myscope = "global";
function showScope(myscope){
 return myscope; //     ,              
}
alert(showScope('local'));

function globalScope(myscope){
 myscope = window.myscope; //     
 return myscope;
}
alert(globalScope(’local’));
             :

for(var i = 0; i < myarray.length; i++){}    /    
              ,                                     。           , Java,             ,          :      。 JavaScript     。           JavaScript           。         JavaScript  ,                         。            。

(function(){
 // creation of my namespace         
 if(!window.MYNAMESPACE) {
  window['MYNAMESPACE'] = {};
 }
 //         ,    
 //              
 function myFunction(var1, var2){
  //          
 }
 //              ,                     
 window['MYNAMESPACE']['myFunction'] = myFunction;
})(); //     =     
//                
                 “     ”     。          《Javascript     》。YUI     YAHOO YAHOO_config      ,                      ,    《Javascript       》。

     
                                。   ,JavaScript                 。           ,         。      String.replace()              。

var myString = "this is my string";
myString = myString.replace("","%20"); // "this%20is my string"
myString = myString.replace(/ /,"%20"); // "this%20is my string"
myString = myString.replace(/ /g,"%20"); // "this%20is%20my%20string"
parseInt
 JavaScript             parseInt        10   。          ,    2 36      。         ,          。

parseInt('09/10/08'); //0
parseInt(’09/10/08′,10); //9,                  
  parseInt         ,     ‘0x’            ,    ‘0′           。                。   numString           ,    NaN(     )。

‘this’
             “this”。 JavaScript                 ,          “this”。  ,      :

function myFunction() {
 var myObject = {
  objProperty: "some text",
  objMethod: function() {
   alert(objProperty);
  }
 };
 myObject.objMethod();
} 

function myFunction() {
 var myObject = {
  objProperty: "some text",
  objMethod: function() {
   alert(this.objProperty);
  }
 };
 myObject.objMethod();
}
   A List Apart             this     。

 this        this              :

<input type="button" value="Gotcha!" id="MyButton">
<script>
var MyObject = function () {
    this.alertMessage = "Javascript rules";
    this.ClickHandler = function() {
        alert(this.alertMessage );
        //      ”JavaScript rules”,  MyObject.ClickHandler ,
        //this          document.getElementById("theText")   
  }
}();
document.getElementById(”theText”).onclick =  MyObject.ClickHandler
</script>
      :


var MyObject = function () {
    var self = this;
    this.alertMessage = “Javascript rules”;
    this.OnClick = function() {
        alert(self.value);
    }
}();
                《JavaScript      》。
switch  Estelle Weyl    switch statement quirks,    :             ,               break return                    case  。


undefined ≠ nullnull     ,undefined     、     。  null        。         ,       null,        ,      ,       。if(myObject !== null  && typeof(myObject) !== 'undefined') {
 //  myObject undefined,        null,        
}
if(typeof(myObject) !== 'undefined' && myObject !== null) {
 //  myObject   
}


                        :window.onclick = MyOnClickMethod               window.onclick          ,          IE      。        ,4  Simon Willison        addLoadEvent():function addLoadEvent(func) {
 var oldonload = window.onload;
 if (typeof window.onload != 'function') {
  window.onload = func;
 }else {
  window.onload = function() {
   oldonload();
   unc();
  }
 }
}
addEvent(window,'load',func1,false);
addEvent(window,'load',func2,false);
addEvent(window,'load',func3,false);
   JavaScript      ,                    ,   YUI       :YAHOO.util.Event.addListener(window, "click", MyOnClickMethod);