[英]what this means in Javascript “typeof(arguments[0])”
我已经在代码中找到了这个,可能有人在我之前做过。 我无法获得此代码行的确切功能。 arguments [0]在这里会做什么。
typeof(arguments[0])
整个代码是这样的:
var recommendedHeight = (typeof(arguments[0]) === "number") ? arguments[0] : null;
问题是我总是将recommendedHeight
为null
。 知道什么时候返回任何其他值?
JavaScript中的每个函数都会自动接收两个附加参数: this
和arguments
。 值this
取决于调用模式,可能是全球浏览器上下文(例如,窗口对象),函数本身,或用户提供的价值,如果你使用.apply()
arguments
参数是传递给函数的所有参数的类似数组的对象。 例如,如果我们定义以下函数。
function add(numOne, numTwo) {
console.log(arguments);
return numOne + numTwo;
}
并像这样使用它。
add(1, 4);
当然,这将返回5,并在控制台[1, 4]
显示arguments数组。 这允许您执行的操作是传递和访问比功能强大的功能定义的参数更多的参数。 例如..
add(1, 4, "extra parameter 1", "extra parameter 2", "extra parameter n");
我们将在控制台中看到[1, 4, "extra parameter 1", "extra parameter 2", "extra parameter n"]
。 现在在函数中,我们可以通过arguments[2]
访问"extra parameter 1"
。
您的代码检查参数数组中第一项的类型(例如,数字,字符串等),并使用三元运算符进行检查。
扩展您的代码可以使其更加清晰:
var recommendedHeight;
//if the first argument is a number
if ( typeof(arguments[0]) === "number" ) {
//set the recommendedHeight to the first argument passed into the function
recomendedHeight = arguments[0];
} else {
//set the recommended height to null
recomendedHeight = null;
}
希望有帮助!
这意味着:
如果arguments [0]的变量类型是数字,则RecommendationHeight获取arguments [0]的值,否则将其设置为null。
可能的参数是一个包含一些属性的数组,并且其第一条记录应包含建议的高度。 这就是为什么它应该是一个数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.