背景:我有一个HTML页面,可以让您扩展某些内容.由于只需要加载页面的一小部分进行此类扩展,因此通过JavaScript完成,而不是通过指向新的URL/HTML页面.然而,作为奖励,用户能够永久链接到这样的扩展部分,即向其他人发送诸如的URL
并为其他用户立即打开"foobar"类别.这使用parent.location.hash ='foobar',因此该部分很好.
现在的问题是:当用户在页面上关闭此类别时,我想再次清空URL片段,即将http://example.com/#foobar转到http://example.com/以更新永久链接显示.但是,这样做parent.location.hash = ''会导致重新加载整个页面(例如在Firefox 3中),我想避免这种情况.使用window.location.href = '/#'不会触发页面重新加载,但会在URL中留下一些看起来不太好看的"#"符号.那么在流行的浏览器中有没有一种方法可以删除包含"#"符号的URL锚点,而不会触发页面刷新?
为什么按位操作(~0);打印-1?在二进制中,不应该是1.为什么?
是否window.location.hash包含url部分的编码或解码表示?
当我打开相同的URL(http://localhost/something/#%C3%BC其中,%C3%BC转化为ü在Firefox 3.5和Internet Explorer 8),我得到不同的值document.location.hash:
#%C3%BC#ü有没有办法在两个浏览器中获得一个变体?
我写了两种方法来检查性能
public class Test1 {
private String value;
public void notNull(){
if( value != null) {
//do something
}
}
public void nullNot(){
if( null != value) {
//do something
}
}
}
Run Code Online (Sandbox Code Playgroud)
并在编译后检查它的字节码
public void notNull();
Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: getfield #2; //Field value:Ljava/lang/String;
4: ifnull 7
7: return
LineNumberTable:
line 6: 0
line 9: 7
StackMapTable: number_of_entries = 1
frame_type = 7 /* same */
public void nullNot();
Code:
Stack=2, Locals=1, Args_size=1
0: aconst_null
1: …Run Code Online (Sandbox Code Playgroud) 在JavaScript中使用随机数字时,我发现了一个令人惊讶的错误,可能是谷歌Chrome中的V8 JavaScript引擎.考虑:
// Generate a random number [1,5].
var rand5 = function() {
return parseInt(Math.random() * 5) + 1;
};
// Return a sample distribution over MAX times.
var testRand5 = function(dist, max) {
if (!dist) { dist = {}; }
if (!max) { max = 5000000; }
for (var i=0; i<max; i++) {
var r = rand5();
dist[r] = (dist[r] || 0) + 1;
}
return dist;
};
Run Code Online (Sandbox Code Playgroud)
现在,当我运行时,testRand5()我得到以下结果(当然,每次运行略有不同,您可能需要将"max"设置为更高的值以显示错误):
var d = testRand5();
d = {
1: …Run Code Online (Sandbox Code Playgroud) 我正在阅读Peter Seibel撰写的"Practical Common Lisp"一书.
在第6章"变量"部分"词汇变量和闭包"和"动态,又称特殊,变量". http://www.gigamonkeys.com/book/variables.html
我的问题是两个部分中的示例都显示了(让...)如何影响全局变量,并没有真正说明动态和词汇变量之间的区别.
我理解闭包是如何工作的,但我真的不知道在这个例子中让我们如此特别:
(defvar *x* 10)
(defun foo ()
(format t "Before assignment~18tX: ~d~%" *x*)
(setf *x* (+ 1 *x*))
(format t "After assignment~18tX: ~d~%" *x*))
(defun bar ()
(foo)
(let ((*x* 20)) (foo))
(foo))
CL-USER> (foo)
Before assignment X: 10
After assignment X: 11
NIL
CL-USER> (bar)
Before assignment X: 11
After assignment X: 12
Before assignment X: 20
After assignment X: 21
Before assignment X: 12
After assignment X: 13
NIL
Run Code Online (Sandbox Code Playgroud)
我觉得这里没什么特别的.外FOO …
有什么区别__method__,method和_method__?
是否有任何或一些随机的原因人们认为__doc__应该是正确的,而不是doc.是什么让一种方法比另一种更特别?
无法理解.为什么输出"平等"
码:
if (-3 == ~2)
Console.WriteLine("equal");
else
Console.WriteLine("not equal");
Run Code Online (Sandbox Code Playgroud)
输出:
equal
Run Code Online (Sandbox Code Playgroud) .net c# bitwise-operators twos-complement conditional-statements
这已经困扰了我很长一段时间.
>> nil.id
(irb):2: warning: Object#id will be deprecated; use Object#object_id
=> 4
Run Code Online (Sandbox Code Playgroud)
为什么nil.id会是4?(或者如果你想对弃用方面挑剔,则为nil.object_id)
javascript ×4
html ×2
java ×2
url ×2
.net ×1
c ×1
c# ×1
c++ ×1
common-lisp ×1
encoding ×1
lisp ×1
methods ×1
parseint ×1
performance ×1
python ×1
random ×1
ruby ×1
type-systems ×1
types ×1
v8 ×1