1、 对象的定义
var obj={
p1:"a",
p2:"b"
}
obj.p3="c";
相当于
var obj=new Object();
obj.p1="a";
obj.p2="b";
obj.p3="c";
2、 匿名函数
1. 什么是自执行的匿名函数?
它是指形如这样的函数: (function{// code})();
2. 疑问
为什么(function{// code})();可以被执行,而function {// code}();却会报错?
3. 分析
(1). 首先, 要清楚两者的区别:
(function {// code})是表达式, function {// code}是函数声明.
(2). 其次, js"预编译"的特点:
js在"预编译"阶段, 会解释函数声明, 但却会忽略表式.
(3). 当js执行到function(){//code}();时,由于function() {//code}在"预编译"阶段已经被解释过, js会跳过function(){//code},试图去执行();, 故会报错;
当js执行到(function{// code})();时,由于(function {// code})是表达式, js会去对它求解得到返回值, 由于返回值是一 个函数, 故而遇到();时, 便会被执行.
3、赋值语法
js中,null,undefined,0在逻辑运算中都为false,其它为true。所以,在 var check = element.placeholder || element.getAttribute('placeholder'); 这一句中,如果element.placeholder的值不是null,undefined,false,0这些值,check就被赋值为element.placeholder,否则,check被赋值为element.getAttribute('placeholder')的返回值。