小编Rob*_*ert的帖子

parseInt(null,24)=== 23 ......等等,什么?

好吧,所以我正在搞乱parseInt来看看它如何处理尚未初始化的值,我偶然发现了这个宝石.对于任何24或以上的基数,都会发生以下情况.

parseInt(null, 24) === 23 // evaluates to true
Run Code Online (Sandbox Code Playgroud)

我在IE,Chrome和Firefox中对它进行了测试,它们都是警告的,所以我认为它必须在某个地方的规范中.一个快速的谷歌搜索没有给我任何结果所以我在这里,希望有人可以解释.

我记得听过他说的Crockford演讲,typeof null === "object"因为疏忽导致Object和Null在内存中有一个几乎相同的类型标识符,或者沿着这些行,但我现在找不到那个视频了.

试一试:http://jsfiddle.net/robert/txjwP/

编辑校正:较高的基数返回不同的结果,32返回785077
编辑2来自zzzzBov:[24...30]:23, 31:714695, 32:785077, 33:859935, 34:939407, 35:1023631, 36:1112745


TL;博士

解释为什么parseInt(null, 24) === 23是真实的陈述.

javascript parseint

226
推荐指数
6
解决办法
2万
查看次数

git://协议被公司阻止,我该如何解决这个问题?

尝试git clone git://github.com/ry/node.git不起作用的东西会导致:

Initialized empty Git repository in /home/robert/node/.git/
github.com[0: 207.97.227.239]: errno=Connection timed out
fatal: unable to connect a socket (Connection timed out)
Run Code Online (Sandbox Code Playgroud)

但是,通过HTTP克隆工作正常.到目前为止,我已经收集到这是协议的问题,但我正在尝试安装需要命令的cloud9

git submodule update --init --recursive

它试图使用git://协议并失败.有没有办法改变命令的工作方式?

git github

184
推荐指数
4
解决办法
8万
查看次数

Node-MySQL(felixge)连接问题

我在Ubuntu 10.04 LTS VM上运行带有Node-Mysql的 Node.js 4.1 .然而,我遇到了一些奇怪的问题,而且我不确定是什么导致了它.

我偶尔无法连接到数据库,有时它工作正常.当我无法连接时,我在mysql端的连接中看到连接弹出窗口,用户为"unauthenticated",状态为"从网络读取",但几秒后它就会消失.该.connect()回调不闪光,我不知道在哪里可以从这里走.

我正在使用从主机到vm的端口转发,22用于SSH,80用于http请求,但除此之外一切正常.mysql上的主机显示为主机,而不是VM,尽管即使成功连接也是如此.

不确定重要性,但连接在VM上的TIME_WAIT中保持,并且本地地址:端口与MySQL不同,也用于成功连接.

mysql node.js

7
推荐指数
1
解决办法
969
查看次数

"智能"文本区域自动缩进

我正在尝试创建一个自动缩进文本区域,到目前为止它使用以下代码.我遇到的问题是我目前正在阻止按Enter键的默认操作,以便计算行中的选项卡,然后插入换行符.

这有效,但我希望得到textarea的默认动作,因为如果按住enter键,它不会滚动textarea直到插入符号触及底行,然后滚动条在底行保留插入符号.如果在textarea的任何地方使用,下面的当前代码将插入符号保持在视野中,但它会使插入符号上方的内容向上滚动,这是一种折衷,因为插入符号不再消失.如果没有其他解决方案,这将工作正常,但我希望还有其他想法.

    var start = this.selectionStart-1;
    var end = this.selectionEnd;
    var sT = this.scrollTop;
    var sH = this.scrollHeight;
    var vH = $(this).height();

    var x = (sH - sT) - vH;

    // Check if hitting enter on the first line as no newline will be found
    if (this.value.lastIndexOf('\n',start)==-1)
     var startSubstr = 0;
    else 
     var startSubstr = this.value.lastIndexOf('\n',start)+1;

    var endFirst = end - startSubstr;

    var valueToScan = this.value.substr(startSubstr,endFirst);
    var count = 0;

    // Count only \t at the beginning of the line, …
Run Code Online (Sandbox Code Playgroud)

javascript php jquery

5
推荐指数
1
解决办法
2288
查看次数

一种有益的桌面语言,可以学习,值得学习,具有跨平台能力

我首先要说的是我自学成才,我所知道的一切都是从家庭中的程序员,自我利益和反复试验中汲取的.

我正在阅读Aaron Hillegass的Mac OS X Cocoa Programming,但我无法保持兴趣.我认为我失去兴趣的主要原因是缺乏我喜欢Javascript和PHP的主要原因,这是允许在任何平台上开发,托管和测试的整体可移植性(我有Windows 7,Mac OS X和Linux) .当我能够在任何地方使用它时,想出一个项目 - 因此对语言保持兴趣 - 会容易得多.

也就是说,我的问题就像对跨平台语言(Java?C++?,*)的信息请求一样简单,或者对项目或方法的一些建议可能会让我对语言感兴趣的时间长到足以实际能够开始制作功能性应用.

编辑

为了澄清,我正在寻找语言的整体知识,而不是特定的API或工具包.从那里开始,我可以学习工具包,外部库和其他东西.现在的主要问题是找到一种跨平台的语言,并且最好由Stack Overflow社区尊重(因此在这里发布,因为这对我来说是一个非常有价值的工具,我喜欢在我可以的时候帮助别人).

programming-languages

5
推荐指数
1
解决办法
1817
查看次数

内部应用程序的"基于Web"的推送通知

我已经在解决一个问题,但是在我想要检查实现之前的想法之前,我还没有做过这样的事情.

基本上我需要修改一个现有的基于Web的应用程序,该应用程序有大约20个用户来添加推送通知.用户同时获取通知非常重要(PC-A不应在PC-B之前20秒收到警报).目前,系统处理AJAX请求,每隔20秒发送到服务器并请求任何更新并每次完全重建数据表(即使数据未更改).这看起来真的很草率,所以我提出了两种方法.

  1. 不要断开与服务器客户端的连接.我正在抛弃的这个想法涉及保持服务器和客户端之间的连接始终处于活动状态.带宽并不是任何解决方案的真正问题,因为内部网络只有大约20人.使用此解决方案,只要有更新,服务器就可以将Javascript推送到客户端,并相应地修改数据表.同样,每个连接的PC在尽可能接近的同时接收更新是非常重要的.这个的主要缺点是我的经验,我以前从未这样做过,所以我不确定它的效果如何,或者它通常是一个坏主意.

  2. 继续AJAX请求,但只是间隔响应.我想到的第二个解决方案是允许客户端按照惯例(当前每20秒)发出AJAX请求,但服务器只能以30秒的间隔响应(例如2:00:00和2:00:30)无论在那段时间内收到多少AJAX请求.这需要调整AJAX请求的超时以防止请求超时,但理论上听起来没问题,至少对我而言.

这仅适用于内部网络,因此带宽不是主要考虑因素,因此通知尽可能接近彼此接收.我对其他想法持开放态度,这些只是我到目前为止所想到的两个想法.

编辑

主要寻找每种方法的利弊.DashK有另一个有趣的方法,但我想知道是否有人有任何这些方法的经验,并可以证明每种方法的优点和缺点,或可能是另一种方法.

javascript ajax jquery web-applications push-notification

4
推荐指数
2
解决办法
3054
查看次数

Javascript关闭,维护外部对象

我一直在使用Javascript闭包来保护变量,使它们在返回的函数中是本地的,例如:

closure = function() {
    var secretVar = 'Secret';

    return {
        "msg" : function() {
            console.log(secretVar);
        }
    };
}();
console.log(closure.secretVar); // Undefined
closure.msg(); // Secret
Run Code Online (Sandbox Code Playgroud)

我觉得我对此有很好的把握,让我能够控制内部变量的访问方式.

我现在遇到了这个问题

closure = function() {
    var secretVar = ['Secret One','Secret Two'];

    return {
        "del" : function(modMe) {
            modMe = secretVar;
            modMe.slice(1,1);
            console.log(modMe);
        }(secretVar),
        "secretVar" : function() {
            console.log(secretVar);
        }
    };
}();
closure.del(); // Secret One
closure.secretVar(); // Secret One
Run Code Online (Sandbox Code Playgroud)

我希望closure.del()返回Secret One,但我希望secretVar保持不变,但是,它不是.del()函数正在修改引用而不是副本,我不确定如何让它复制secretVar并修改它.

我猜它会以...的形式出现

(function(y) {
    //..Body that changes y
})(secretVar)
Run Code Online (Sandbox Code Playgroud)

但是我无法让它发挥作用.有任何想法吗?

javascript jquery

4
推荐指数
1
解决办法
483
查看次数

Adobe Air Javascript API

好吧,我觉得这是一个愚蠢的问题,但我确实无法在Google上找到适用于Adobe AIR Javascript的API.我正试图访问文件系统和网络等,但我找到的所有内容似乎并没有给我提供任何超过ActionScript重定向的内容.有人知道有完整API的地方吗?

javascript air api

4
推荐指数
1
解决办法
2675
查看次数

XCode错误,无法看到差异

好吧,我正在阅读关于可可编程的Aaron Hillegass一书,关于拖放章节.我正在跟随其中一个课程,我通常更改变量名称,因为我发现它让我更加投入,让我更好地理解.我开始收到此错误:

2010-10-04 00:38:06.699 TypingTutor[421:a0f] -[BigLetterView dragImage:at:offset:event:pasteboard:source:slideback:]: unrecognized selector sent to instance 0x100424390
Run Code Online (Sandbox Code Playgroud)

现在,我想是因为我弄乱了一些变量名,所以我回去直接从书中复制变量,但仍然得到了错误.XCode说以下功能可能无法得到响应.好吧,无论我怎么也想不起我的生活,所以我废弃了这个功能并重新编写它.令我发疯的是它第二次工作,但我确实注意到XCode突出了有效功能的语法,但没有用的功能.我看不出任何身体上的差异,并且难以理解为什么一个人与另一个人不同.两者都是在Mac键盘上键入的,所以我不能看到它是由于编码而隐藏的角色,但是,我只是希望我错过一些非常明显的东西,因为它是凌晨1点......有没有人跑过进入这之前?

直接从.m文件复制的方法...

这个工作

 [self dragImage:anImage
     at:p
    offset:NSMakeSize(0,0)
     event:mouseDownEvent
   pasteboard:pb
    source:self
slideBack:YES];
Run Code Online (Sandbox Code Playgroud)

这个没有

 [self dragImage:anImage
     at:p
    offset:NSMakeSize(0,0)
     event:mouseDownEvent
   pasteboard:pb
    source:self
    slideback:YES];
Run Code Online (Sandbox Code Playgroud)

xcode cocoa objective-c

2
推荐指数
1
解决办法
170
查看次数