小编cc *_*ung的帖子

在javascript中,一个空字符串总是false作为布尔值?

在javascript中,

var a = '';
var b = (a) ? false : true;   // fixed!
Run Code Online (Sandbox Code Playgroud)

var b将被设置为false.

这是一个可以依赖的定义行为吗?

javascript string boolean

126
推荐指数
5
解决办法
7万
查看次数

如何确定接口{}值的"真实"类型?

我没有找到使用interface{}类型的好资源.例如

package main

import "fmt"

func weirdFunc(i int) interface{} {
    if i == 0 {
        return "zero"
    }
    return i
}
func main() {
    var i = 5
    var w = weirdFunc(5)

    // this example works!
    if tmp, ok := w.(int); ok {
        i += tmp
    }

    fmt.Println("i =", i)
}
Run Code Online (Sandbox Code Playgroud)

你知道使用Go的好介绍interface{}吗?

具体问题:

  • 我如何获得"真实"类型的w?
  • 有没有办法得到一个类型的字符串表示?
  • 有没有办法使用类型的字符串表示来转换值?

types type-conversion go

105
推荐指数
6
解决办法
9万
查看次数

使用reflect,如何设置struct字段的值?

粗略的时间使用reflect包使用struct字段.特别是,还没弄清楚如何设置字段值.

type t struct { fi int; fs string }
var r t = t{ 123, "jblow" }
var i64 int64 = 456
  1. 得到字段的名称我 - 这似乎工作

    var field = reflect.TypeOf(r).Field(i).Name

  2. 获得字段i的值作为a)接口{},b)int - 这似乎有效

    var iface interface{} = reflect.ValueOf(r).Field(i).Interface()

    var i int = int(reflect.ValueOf(r).Field(i).Int())

  3. 设置字段的值i - 尝试一个 - 恐慌

    reflect.ValueOf(r).Field(i).SetInt( i64 )

    panic:reflect.Value·SetInt使用未导出字段获得的值

    假设它不喜欢字段名称"id"和"name",所以重命名为"Id"和"Name"

    a)这个假设是否正确?

    b)如果正确,认为没有必要,因为在同一个文件/包中

  4. 设置字段i的值 - 尝试两个(字段名称大写) - 恐慌

    reflect.ValueOf(r).Field(i).SetInt( 465 )

    reflect.ValueOf(r).Field(i).SetInt( i64 )

    恐慌:反映.值/ SetInt使用不可寻址的值


@peterSO下面的说明是彻底和高质量的

四.这工作:

reflect.ValueOf(&r).Elem().Field(i).SetInt( i64 )

他还记录了字段名称必须是可导出的(以大写字母开头)

reflection go go-reflect

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

在Javascript中,将NodeList转换为数组的最佳方法是什么

DOM方法document.querySelectorAll()(以及其他一些方法)返回一个NodeList.

要在列表上操作,例如使用forEach(),NodeList必须先将其转换为Array.

什么是转换的最佳方式NodeList,以一个Array

javascript arrays dom

71
推荐指数
7
解决办法
3万
查看次数

在querySelector中:如何获取第一个元素并获取最后一个元素?在dom中使用了什么遍历顺序?

在div中,具有属性的元素(不一定是第2代)move_id.

首先,想要最直接的方法来获取集合的第一个和最后一个元素

尝试获得第一个和最后一个:

var first = div.querySelector('[move_id]:first');
var last  = div.querySelector('[move_id]:last');
Run Code Online (Sandbox Code Playgroud)

这个炸弹是因为:第一个和最后一个是我的一厢情愿(?)

不能使用Array方法,querySelectorAll因为NodeList不是数组:

var first = (div.querySelectorAll('[move_id]'))[0];
var last  = (div.querySelectorAll('[move_id'])).pop();
Run Code Online (Sandbox Code Playgroud)

这个炸弹因为NodeList没有方法pop()

(是的,可以在NodeList之上使用Array方法:

var first = div.querySelector('[move_id]');
var last = Array.prototype.pop.call(div.querySelectorAll('[move_id']));
Run Code Online (Sandbox Code Playgroud)

这是有效的,也是我现在正在使用的,但我认为必须有一些更直接的东西,我只是缺少了)

其次,需要根据http://en.wikipedia.org/wiki/Tree_traversal验证元素是按照pre-oder深度优先遍历列出的

javascript html5 dom

56
推荐指数
5
解决办法
8万
查看次数

fetch(),你如何进行非缓存请求?

fetch('somefile.json'),可以请求从服务器而不是从浏览器缓存中提取文件?

换句话说,有fetch()没有可能绕过浏览器的缓存?

javascript html5 fetch-api

56
推荐指数
4
解决办法
3万
查看次数

websockets安全与否?

维基百科似乎websockets是安全的:

对于Web浏览器支持,WebSocket协议的安全版本在Firefox 6(名为MozWebSocket),[2] Google Chrome 14 [3]和Internet Explorer 10开发人员预览版中实现....虽然没有已知的漏洞,但它在Firefox 4和5中被禁用...

W3表示他们不安全:

遵循HTTP过程可能会在Web浏览器上下文中引入严重的安全问题.例如,考虑在一个路径上具有WebSocket服务器的主机和在另一个路径上具有打开的HTTP重定向器的主机.突然之间,任何可以被赋予特定WebSocket URL的脚本都可以被欺骗与Internet上的任何主机进行通信(并且可能与之共享机密),即使脚本检查URL具有正确的主机名.
  1. http websockets(ws :)安全与否?

  2. https websockets(wss :)安全与否?

  3. 如果不是#2,是否有记录的预防措施?

html javascript html5 websocket

45
推荐指数
2
解决办法
3万
查看次数

使用保留字作为属性名称,重新访问

可以Object用作对象的属性名称吗?

这个问题是间接提出的一个stackoverflow问题.答案似乎是@Squeegy的普遍共识:

你可以使用这些单词,但只能作为字符串而不是速记属性 - HTMLElement很酷,而obj["word"]不是
有助于提供保留字列表的链接

虽然我认为@Squeeky在这个领域可能比我更有知识,但在某些情况下使用保留词可能是个坏主意,我认为他的结论基于两点是错误的:

  • 使用它们作为"速记"属性来测试保留字

  • 在HTMLFormElement使得它不可能以"速记"使用保留字

首先,使用保留字列表,每个都作为属性添加到obj.wordobj["word"],并作为obj.word<input name='typeof' value='scalar' />,然后作为form.typeof和检索Object.在所有63个案例中,所有8个测试都正常工作.

其次,HTMLFormElement需要这样做,因为它使用简写表示法在其元素中检索.如果HTMLElement是表单的元素,则obj["word"]=="标量".

根据我的经验,保留字通常是数据(例如,名为"私人"的列),而不是程序造成的.因此,它们会污染JSON对象,并从那里污染INPUT,然后从那里污染HTMLFormElement.简单地说,没有大量(不需要的)工作,就不可能保留保留的单词被强制用于速记.

在我看来这些真正的问题:

  • 需要注意不要与现有财产发生冲突,而不是保留字

  • (很多,如果不是全部)变量不能保留字

  • 使用保留字作为属性可能(但不一定)令人困惑

这个结论是否正确,保留字作为属性名称,并以字符串或简写形式访问它们就好了 - 只要对情况应用一点常识?

javascript json properties reserved-words javascript-objects

43
推荐指数
3
解决办法
3万
查看次数

在Go中,编写非阻塞代码是否有意义?

来自node.js的观点,其中所有代码都是非阻塞的.

在Go中,使用通道可以轻松实现非阻塞.

如果有人在go中编写node.js类型的服务器,是否有意义使其无阻塞?例如,让数据库connect()函数返回一个通道,而不是在等待连接发生时阻塞.

对我来说,这似乎是正确的方法

但......

go blocking node.js

38
推荐指数
5
解决办法
2万
查看次数

在golang中,是否可以从类型本身获取reflect.Type,从名称作为字符串?

type t1 struct { i int; s string }
var v1 reflect.Type = /* how to set to t1's reflect.Type? */
Run Code Online (Sandbox Code Playgroud)
  1. 是否有可能获得t1的reflect.Type而不必实例化它?

  2. 是否可以通过将其名称"t1"作为字符串来获取t1的reflect.Type?

reflection types go go-reflect

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