js雑多
4222 ワード
String. trim()
Date.format()
Agments
関数の中の前にvarの変数や方法がありません.関数が実行された後に大域(上位機能領域)になります.varがあるのが局部変数です.
例1:
閉包の例
例1:
Javascriptでインライン関数を宣言したら、ローカル変数は関数が戻ってもアクセスできます.
例3:
parseInt
ParseInt(“01”)に対してパーrseInt(“07”)に;いずれも正しい結果が得られますが、ParseInt(「08」)またはParseInt(「09」)であれば0に戻ります.まずPArseInt文法を見ます.PArseInt(string、radix)ここでstringは変換する文字列で、radixはバイナリ、8進数、16進数または10進数です.デフォルトではradixが指定されていない場合、0 xスイッチで16進数となります.0スイッチで、2番目がxでない場合は、8進数とさせます.だから、私たちは間違えないように、进位制を明確に指定します.私達が普段10進数位を使うなら、パーパーネット(「08」、10)にします.
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
}
Date.format()
Date.prototype.format = function(format)
{
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1 ? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
alert((new Date()).format('yyyy-MM-dd'));
Agments
function func(a,b,r){
alert( arguments.length);
}
func(9);// 1
alert( func.length);// 3
関数の中の前にvarの変数や方法がありません.関数が実行された後に大域(上位機能領域)になります.varがあるのが局部変数です.
例1:
function sayHello2() {
sayAlert = function() { alert(123); } ;
}
sayHello2();
sayAlert();
例2:function sayHello2() {
var id="007";//
name="hello";//
}
sayHello2();
alert(name);//hello
alert(id);// :id
閉包の例
例1:
function genFuns() {
var array=[];
for(var i=0;i<3;i++){
var fun=function(num){return function(){alert(num)}}(i);// 0 1 2
//var fun = function(){alert(i)};// 3 3 3
array.push(fun);
}
return array;
}
var sy = genFuns();
for(var j=0;j<sy.length;j++)
sy[j]();
例2:(http://hi.baidu.com/xiaolei1982/blog/item/98d8a0ef75d444edce1b3eba.htmlから回転)Javascriptでインライン関数を宣言したら、ローカル変数は関数が戻ってもアクセスできます.
function sayHello2(name) {
var text = 'Hello ' + name; // local variable
var sayAlert = function() { alert(text); }
return sayAlert;
}
var sy = sayHello2('never-online');
sy();
例3:
function say667() {
var num = 666;
var sayAlert = function() { alert(num); }
num++;
return sayAlert;
}
var sy = say667();
sy(); //667
例4:<script type="text/javascript">
function setupSomeGlobals() {
// Local variable that ends up within closure
var num = 666;
// Store some references to functions as global variables
gAlertNumber = function() { alert(num); }
gIncreaseNumber = function() { num++; }
gSetNumber = function(x) { num = x; }
}
</script>
<button onclick="setupSomeGlobals()"> - setupSomeGlobals()</button>
<button onclick="gAlertNumber()"> - gAlertNumber()</button>
<button onclick="gIncreaseNumber()"> - gIncreaseNumber()</button>
<button onclick="gSetNumber(5)"> 5 - gSetNumber(5)</button>
parseInt
ParseInt(“01”)に対してパーrseInt(“07”)に;いずれも正しい結果が得られますが、ParseInt(「08」)またはParseInt(「09」)であれば0に戻ります.まずPArseInt文法を見ます.PArseInt(string、radix)ここでstringは変換する文字列で、radixはバイナリ、8進数、16進数または10進数です.デフォルトではradixが指定されていない場合、0 xスイッチで16進数となります.0スイッチで、2番目がxでない場合は、8進数とさせます.だから、私たちは間違えないように、进位制を明確に指定します.私達が普段10進数位を使うなら、パーパーネット(「08」、10)にします.