1.
function a() {
console.log(this);
}
a.call(null);
window
如果第一个参数传入的对象调用者是null或者undefined的话,call方法将把全局对象(也就是window)作为this的值。所以,不管你什么时候传入null,其this都是全局对象window,
所以该题目可以理解成如下代码:
function a() {
console.log(this);
}
a.call(window);
获取地址栏参数,并将其转换成一个对象
function getArgs() {
var args = new Object();
var query = location.search.substring();
query = query.replace(/\+/g, " ");
var pairs = query.split("&"); // Break at ampersand
for (var i = ; i < pairs.length; i++) {
var pos = pairs[i].indexOf('='); // Look for "name=value"
if (pos == -) continue; // If not found, skip
var argname = pairs[i].substring(, pos); // Extract the name
var value = pairs[i].substring(pos + ); // Extract the value
value = decodeURIComponent(value); // Decode it, if needed
args[argname] = value; // Store as a property
}
return args;
}
var data=getArgs();
一个地址获取域名数组
var getHost = function (url) {
var prev = "";
var result = [];
var index = url.indexOf('https');
if (index > -) { url = url.replace("https://", ""); prev = "https://"; }
var index2 = url.indexOf("http");
if (index2 > -) { url = url.replace("http://", ""); prev = "http://"; }
var index3 = url.indexOf('/');
var host = url.substring(, index3);
result.push(host);
result.push(prev + host);
return result;
}
var url="https://pgw.grapay.net/Test/index.htm";
var result=getHost(url);
result[0]:pgw.grapay.net
result[1]:https://pgw.grapay.net
3.方法的声明
console.log(add);
function add(x) { return x + ; }
console.log(add);
function add(x) { return x + ; }
console.log(add); console.log(fun);
var fun = function (x) { return x + ; }
console.log(fun);
var fun = function (x) { return x + ; }
console.log(fun);
function add(x) { return x + ; }
console.log(add());
function add(x) { return x + ; }
console.log(add()); var fun = function (x) { return x + ; }
console.log(fun());
var fun = function (x) { return x + ; }
console.log(fun());
可以看出这两种声明的不同
4.关于(,,,,,,)这样的返回结果
var f = (function f(){ return ""; }, function g(){ return ; })();
typeof f;
"number" 逗号操作符的使用可以很混淆,但这段说明它的行为:
var x = (, , );
x; x的值是3,这表明,当你有一系列的组合在一起,并由逗号分隔的表达式,它们从左到右进行计算,但只有最后一个表达式的结果保存。由于同样的原因,这个问题可以改写为减少混乱: var f = (function g(){ return ; })();
typeof f; 关于逗号表达式:
原文:
http://www.2ality.com/2012/09/expressions-vs-statements.html
译文:
http://www.cnblogs.com/ziyunfei/archive/2012/09/16/2687589.html
5.delete