javaScript一些需要注意的细节
JavaScript执行完同步,才能执行异步队列。如:alert,for if while 同步执行,在执行这些代码时,其它代码不执行。//关于JavaScript异步执行
属性在查找时先查找当前对象中属性,再查找继承原型,最后查找最终原型object是否存在。object的prototype为null。
object.prototype共享一份内存。构造方法重复构造。
花括号({})是function的简写,方括号([])是array的简写。
a=b;为a指向同一个b
a=b();为执行b,返回值赋值给a
a=new b();为在内存新建一个b,a指向一个新的b对象
function b(){ return 1+2; } var a=b();//out 3 var c=b;//out:function b(){ return 1+2;}
y = y || 0;
如果y已经定义 , y || 返回 y, 因为 y 是 true, 否则返回 0, 因为 undefined 为 false。
false
、0
、空字符串(""
)、NaN
、null
和undefined
被转换为false
- 所有其他值被转换为
true
在C++或C#中,当我们谈到对象,指的是类或者结构体的实例。对象根据他们实例化的模板(就是所谓的类),会拥有不同的 属性和方法。但在JavaScript里对象不是这个概念。在JavaScript中,对象就是一个键/值对的集合 -- 你可以把JavaScript的对象想象成一个键为字符串类型的字典。
有两种简单方法可以创建一个空对象:
var obj = new Object();
和:
var obj = {};
这两种方法在语义上是相同的。第二种更方便的方法叫作“对象字面量(object literal)”法。这种也是 JSON 格式的核心语法,一般我们优先选择第二种方法。
“对象字面量”也可以用来在对象实例中定义一个对象:
var obj = { name: "Carrot", "for": "Max", details: { color: "orange", size: 12 } }
对象的属性可以通过链式(chain)表示方法进行访问:
obj.details.color; // orange obj["details"]["size"]; // 12 var str="size"; obj["details"][str]; // 12 动态访问 var str2="length"; obj["details"][str2]=100;//动态添加 obj["details"]["length"]; // 100 var obj = { name: "Carrot", "for": "Max", details: { color: "orange", size: 12, length:100 } }
以上代码示例来自----来自