我想知道= + _运算符在JavaScript中意味着什么.它看起来像是作业.
例:
hexbin.radius = function(_) {
if (!arguments.length)
return r;
r = +_;
dx = r * 2 * Math.sin(Math.PI / 3);
dy = r * 1.5;
return hexbin;
};
Run Code Online (Sandbox Code Playgroud) 我在几个地方见过这个
function fn() {
return +new Date;
}
Run Code Online (Sandbox Code Playgroud)
我可以看到它返回的是时间戳而不是日期对象,但我找不到有关加号正在做什么的任何文档.
谁能解释一下?
嗨朋友,当我点击另一个div时,我想淡入div,为此我使用下面的代码. 代码1工作正常,但我需要用代码2.
我知道有jQuery,但我需要在JavaScript中执行此操作
你能指导我,我正在做什么样的错误,或者我需要改变什么......
Code1 ---工作正常
function starter() { fin(); }
function fin()
{
for (i = 0; i <= 1; i += 0.01)
{
i=Math.round(i*100)/100;
setTimeout("seto(" + i + ")", i * 1000);
}
}
function seto(opa)
{
var ele = document.getElementById("div1");
ele.style.opacity = opa;
}
Run Code Online (Sandbox Code Playgroud)
Code2 ---不起作用
function starter()
{
var ele = document.getElementById("div1");
fin(ele);
}
function fin(ele)
{
for (i = 0; i <= 1; i += 0.01)
{
i=Math.round(i*100)/100;
setTimeout("seto(" + ele + …Run Code Online (Sandbox Code Playgroud) 当我遇到这个时,我正在仔细阅读underscore.js注释源:
if (obj.length === +obj.length) {...}
Run Code Online (Sandbox Code Playgroud)
我现在从这个stackoverflow问题知道加号(+)运算符返回对象的数字表示.
也就是说,obj.length返回一个数字.什么时候obj.length不等于+obj.length?
我只是阅读了底层源代码,并且无法从这段代码中获得观点:
_.each = _.forEach = function(obj, iterator, context) {
if (obj == null) return obj;
iterator = createCallback(iterator, context);
var i, length = obj.length;
if (length === +length) { // why +length?
for (i = 0; i < length; i++) {
iterator(obj[i], i, obj);
}
} else {
var keys = _.keys(obj);
for (i = 0, length = keys.length; i < length; i++) {
iterator(obj[keys[i]], keys[i], obj);
}
}
return obj;
};
Run Code Online (Sandbox Code Playgroud)
为什么长度=== +长度?如果长度不是数字,我想这用于强制转换?有人可以帮我一把吗?
我从输入标签获得输入,但无论我在输入中写什么,它都识别为字符串值,因此我无法使用我的条件.
第二个问题,如果我输入"ddd"作为第一个输入,"111"表示第二个输入,按下按钮,它在控制台中显示NaN.我想显示警报而不是这个.我怎样才能纠正这些?
function addFunc() {
var x = document.getElementById("num1").value;
var y = document.getElementById("num2").value;
if (typeof x == 'string' || typeof y == 'string') {
var result = parseInt(x) + parseInt(y);
console.log(result);
} else {
alert("Wrong Entry!");
}
}Run Code Online (Sandbox Code Playgroud)
<input id="num1">
<input id="num2">
<button type="button" onclick="addFunc()">ADD</button>
<p id="result"></p>Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我为什么以及1+ +"2"+3JavaScript中的表达式如何产生6,这也是一个数字?我不明白在两个+运算符之间引入单个空格如何将字符串转换为数字.
可能的重复:
javascript :javascript 中变量obj.length === +obj.length之前的加号
在查看underscore.js的源代码时,我遇到了这一行(#79)
//some stuff
} else if (obj.length === +obj.length) {
//do stuff
Run Code Online (Sandbox Code Playgroud)
我不是 100% 确定这里发生了什么,谁能解释 obj.length 值之前的“+”的目的?如果只是读取,比较是否相同:
} else if (obj.length === obj.length) {
Run Code Online (Sandbox Code Playgroud)
在 underscore.js 中多次进行相同类型的比较,所以我很确定这不是一个错字。
如果有人能给我指出一篇文章,或者向我抛出一些正确的术语,我将不胜感激:)。谢谢!