小编Esa*_*ija的帖子

对于CodeMash 2012的"Wat"演讲中提到的这些奇怪的JavaScript行为有什么解释?

CodeMash 2012"Wat"谈话基本上指出了Ruby和JavaScript的一些奇怪的怪癖.

我在http://jsfiddle.net/fe479/9/上做了一个JSFiddle的结果.

下面列出了JavaScript特有的行为(我不知道Ruby).

我在JSFiddle中发现我的一些结果与视频中的结果不一致,我不知道为什么.但是,我很想知道JavaScript在每种情况下如何处理幕后工作.

Empty Array + Empty Array
[] + []
result:
<Empty String>
Run Code Online (Sandbox Code Playgroud)

+在JavaScript中使用数组时,我对运算符非常好奇.这与视频的结果相匹配.

Empty Array + Object
[] + {}
result:
[Object]
Run Code Online (Sandbox Code Playgroud)

这与视频的结果相匹配.这里发生了什么?为什么这是一个对象.什么是+运营商吗?

Object + Empty Array
{} + []
result
[Object]
Run Code Online (Sandbox Code Playgroud)

这与视频不符.该视频表明结果是0,而我得到[对象].

Object + Object
{} + {}
result:
[Object][Object]
Run Code Online (Sandbox Code Playgroud)

这与视频不匹配,输出变量如何导致两个对象?也许我的JSFiddle错了.

Array(16).join("wat" - 1)
result:
NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Run Code Online (Sandbox Code Playgroud)

做wat + 1导致wat1wat1wat1wat1......

我怀疑这只是简单的行为,试图从字符串中减去一个数字导致NaN.

javascript

743
推荐指数
4
解决办法
7万
查看次数

如何在PHP中调用当前的匿名函数?

我有一个匿名函数,应该调用自己.但是,我手头没有变量或函数名,所以我希望找到一个函数,它可以在函数的上下文中返回"this".有这样的事吗?

这是一个例子:

$f = function() use($bar, $foo) {
  // call this function again.
};
Run Code Online (Sandbox Code Playgroud)

这样打电话:

call_user_func(__FUNCTION__);
Run Code Online (Sandbox Code Playgroud)

导致这个:

警告:call_user_func()期望参数1是有效的回调函数,找不到函数"{closure}"或函数名无效

如果我尝试将$ f放入use-list,那么它表示该变量未定义(因为它还没有).

php

29
推荐指数
2
解决办法
9445
查看次数

如何知道在chrome控制台中定义js全局变量的文件?

如何找出使用谷歌Chrome控制台定义变量的文件和行?

例如,变量Native(来自MooTools)已在全局范围内定义.我想知道使用谷歌Chrome控制台在哪个文件中定义了这个变量.

javascript mootools google-chrome google-chrome-devtools

29
推荐指数
1
解决办法
9233
查看次数

通过AJAX Post将文件输入发布为FileReader二进制数据

我试图通过rest API发布上传到HTML文件输入到网页的附件.API文档指出帖子是直接二进制内容作为HTTP请求的主体,而不是表单文件上载.

我的代码如下:

$('#_testButton').bind('click', function () {
    var file = document.getElementById('_testFile').files[0]
    var reader = new FileReader();
    reader.onload = function () {
        $.ajax({
            url: '/attachmentURL',
            type: 'POST',
            data: reader.result
        })
    }
    reader.readAsBinaryString(file)
})
Run Code Online (Sandbox Code Playgroud)

我需要这个来处理许多不同的mimeTypes,所以我没有在上面的代码中声明它.但是,我尝试为.doc文件声明contentType:'application/msword',并尝试使用processData:false和contentType:false.

数据将被发布到应有的位置.但是,当我打开文件时,我收到一条消息,上面写着mimeType:带有空文件的application/x-empty或带有一堆二进制字符的文件.我已经尝试过.doc文件和pdf文件,两者的结果是一样的.

有没有人知道我可以改变什么使这项工作?

ajax rest jquery filereader

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

array_push用于关联数组

我正在尝试像这样扩展一个关联数组,但PHP不喜欢它.

我收到此消息:

Warning: array_push() expects parameter 1 to be array, null given
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

$newArray = array();  
foreach ( $array as $key => $value ) { 
    $array[$key + ($value*100)] = $array[$key];
    unset ( $array[$key] );
    array_push ( $newArray [$key], $value );
}
//}
print_r($newArray);
Run Code Online (Sandbox Code Playgroud)

我哪里做错了?

php arrays associative-array array-push

21
推荐指数
2
解决办法
7万
查看次数

价值和参考类型

我知道JavaScript中有6种数据类型.

JavaScript中的"引用"类型是什么?JavaScript中的"值"数据类型是什么?有人可以通过这两个类别列出它们吗?

javascript

20
推荐指数
2
解决办法
3971
查看次数

当字段为空时,val()返回占位符值而不是IE8,9中的实际值

下面显示的占位符属性在firefox中工作正常,但如果在字段为时调用val(),则返回占位符值而不是文本中的实际值.

JSFiddle - http://jsfiddle.net/Jrfwr/2/

<input id="tlt" type="text" placeholder="Enter Title" />
Run Code Online (Sandbox Code Playgroud)

JSCode

function placeHolderFallBack() {
   if ("placeholder" in document.createElement("input")) {
       return;
   }
   else {
       $('[placeholder]').focus(function () {
           var input = $(this);
           if (input.val() == input.attr('placeholder')) {
               input.val('');
               input.removeClass('placeholder');
           }
       }).blur(function () {
           var input = $(this);
           if (input.val() == '' || input.val() == input.attr('placeholder')) {
               input.addClass('placeholder');
               input.val(input.attr('placeholder'));
           }
       }).blur();
       $('[placeholder]').parents('form').submit(function () {
           $(this).find('[placeholder]').each(function () {
               var input = $(this);
               if (input.val() == input.attr('placeholder')) {
                   input.val('');
               }
           })
       });
   } …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

PHP将所有对象属性复制到此

我有一个PHP类型的对象MyObject.

$myObject instanceof MyObject
Run Code Online (Sandbox Code Playgroud)

现在,在class MyObject,有一个非静态函数,在那里,我使用"我"的引用$this,但我也有另一个对象.

是否有可能在不做的情况下$this = $myObject实现或多或少相同的效果,比如某种类似的东西set_object_vars($this, get_object_vars($myObject))

php properties this assign

17
推荐指数
1
解决办法
1万
查看次数

当我想调用它时,如何调用在<head>中声明的JavaScript函数

我在HTML页面的头部声明了一个有效的JavaScript函数.我知道如何创建一个按钮并在用户单击按钮时调用该函数.我想自己称之为页面上的某个地方:

myfunction();
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

html javascript

16
推荐指数
2
解决办法
14万
查看次数

为什么某些技术上可序列化的输入属性不可序列化?

Serializable属性定义为:

  • 当您设置元素的属性时,它将反映在序列化查询中,例如getAttribute,您可以在DOM Inspector中看到更改
  • 当你获得.innerHTML元素的parentnode时,返回的html字符串将包含所有可序列化的属性作为它们的属性对应物

我创建了一个页面,看起来它可以input在Chrome和Firefox中可靠地打印出该元素的所有可序列化属性的表格:http://jsfiddle.net/tEVLp/16/.自定义属性永远不可序列化,因此在firefox webkitSpeech等中不可序列化.在镀铬中测试以获得最佳效果.

所有布尔都是true因为false属性的序列化将缺少属性,这在测试中是假阴性.

所以我的问题是,为什么不是属性.value.checked序列化?

从技术上讲,两者都是可序列化的..value只是一个字符串,浏览器没有序列化其他布尔属性的问题,例如.readOnly.disabled.

我最好的猜测是,由于.defaultValue序列化为"value"-attribute和.defaultChecked序列化到"checked"-attribute,就不会有冲突,因此 .value.checked不能序列.在这种情况下,为什么defaultX选择这些而不是那些反映更有用的电流.value.checked状态的?

html javascript dom

12
推荐指数
1
解决办法
1741
查看次数