/**
* JavaScript 运算符
*/
// instanceof
var box = {
color: "red"
};
box instanceof Array; // false
var box = [1, 2];
box instanceof Array; // true
/**
* JavaScript 数据类型
*/
// null 销毁引用 等待垃圾收集器来清理
var box = new Object();
box = null;
/**
* JavaScript 函数
*/
// 用变量初始化函数
var box = function(num1, num2) {
return num1 + num2;
};
box(1, 2); // 3
// 函数可以传递函数
function mySum(num) {
return 10 + num;
}
function box(mySum, num) {
return mySum(num);
}
box(mySum, 10); // 20
// 函数递归 arguments.callee()
function box(num) {
if (num == 1) {
return 1;
} else {
return num * arguments.callee(num - 1);
}
}
box(5); // 120
// apply()
function box(name, age) {
return name + age;
}
function sum(name, age) {
// this表示window作用域
// []表示传递的参数 可以用arguments代替
// box.apply(this, [name, age]) 等价于 box.apply(this, arguments)
return box.apply(this, [name, age]);
}
// box.length 表示函数接收的参数个数
box.length; // 2
sum("test", 18); // "test18"
// call()
function box(name, age) {
return name + age;
}
function sum(name, age) {
return box.call(this, name, age);
}
sum("test", 18); // "test18"
var color = "红色";
var box = {
color: "蓝色"
};
function sayColor() {
return this.color;
}
sayColor.call(window); // "红色"
sayColor.call(box); // "蓝色"
/**
* JavaScript 变量
*/
// 全局变量 也是window的属性
var color = ‘red‘;
this.color; // "red"
window.color; // "red"
window.color = ‘green‘;
this.color; // "green"
color; // "green"
// 局部变量
var box = {
color: ‘blue‘,
getColor: function() {
// this是box对象
return this.color;
}
};
box.color; // "blue"
box.getColor(); // "blue"
window.color; // "green"
window.box.color; // "blue"
// this是window对象
this.color; // "green"
this.box.getColor(); // "blue"
// if(){} for(){} 函数的()和{}没有封闭作用域 其中定义的变量为全局变量
var color = "red";
console.log(color); // red
console.log(box); // undefined
if (true) {
var color = "yellow";
var box = "circle";
}
console.log(color); // yellow
console.log(box); // circle
var i = -1;
console.log(i); // -1
console.log(j); // undefined
for(var i = 0, j = 0; i < 1; i++, j++){
console.log(i); // 0
console.log(j); // 0
}
console.log(i); // 1
console.log(j); // 1
原文:http://www.cnblogs.com/pumushan/p/6732757.html