Javascriptの罠
6529 ワード
(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);