var a = {} 与 var a = function(){} 的区别?
var a = {}
此时a是一个对象,是一个没有任何属性的对象。
var a = {'name':'object'}
此时a是一个对象,是一个有一个属性的对象,属性名为name,属性的值为object。
alert(a.name) 或者alert(a[name])的结果都是object,这是对象访问属性的两种方式。
var a = function(){}
此时a指向一个函数,相当于有一个函数,名为a,可以这么调用这个函数:
a()
只不过这个函数什么都没有做。
var a = function(){
alert(1);
}
此时a是一个函数,调用a()执行的是函数体,也就是 alert(1)
****************************
var x = (function(){...})(); 和 var x = (function(){...}()); 两种写法一样的吗?有什么区别?
实际上这两种写法都是匿名函数的写法。
第一种写法 var x = ( function( ){ ... })( ... ); 比较常见,它是先声明匿名函数,再执行。
第二种写法 var x = ( function( ){ ... }( ... ) ); 它是先强制执行表达式。(在js中,圆括号运算符与[]、.运算符具有最高的优先级)
JS匿名函数:
var x = (function(){
alert("你看不见我执行");
return 1;
})
console.log(x);
======================
var x = (function(){
alert("竟然被你看见了");
return 1;
})();
console.log(x);
可以理解为:
function foo(){
alert("竟然被你看见了");
return 1;
}
foo()
======================
var x = (function(){
alert("竟然又被你看见了");
return 1;
}())
console.log(x);
***********************************
值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
function selectFrom(lowerValue, upperValue) {
var choices = upperValue - lowerValue + 1;
return Math.floor(Math.random() * choices + lowerValue);
}
var num = selectFrom(2, 10);
aler t(num); // 介于 2 和10 之间(包括 2 和 10)的一个数值
***********************************