一、 null与undefined
在demo1.js中添加如下代码
function varInit() {
var x;
if (x == null) {
alert("null");
}
if (typeof (x) == undefined) {
alert("undefined");
}
if (!x) { //推荐此法
alert('不X');
}
}
varInit();
将会弹出什么,首先弹出"null",然后弹出"不X"。声明一个变量,未给它赋值,则它此时的状态就是nul。
二、 函数总是有返回值
在demo1.js中添加如下代码
function add(i1, i2) {
if (i1 > i2) {
return i1 + i2;
}
}
alert(add(5, 6)); //没有返回值则返回undefined
alert(add(6, 5));
假如这段代码在Java或者C#中,是无法通过编译的,它娘的到底要不要返回啊。
JavaScript说,有返回就返回呗,无返回就返回undefined,总之老子要返回。
三、 匿名函数
//匿名函数的使用
var f1 = function (i1, i2) {
return i1 - i2;
};
alert(f1(10,5));
有些函数是用过就甩的,就像白富美对女屌丝一样。因为白富美根本连你叫什么都不知道,只知道你是个屌丝(fucntion)。
白富美说,你替我去买套套,一个大的(i1),一个小的(i2),我来计算一下,大的比小的大多少。
屌丝于是就去买了,白富美拿过套套,
var f1 = function (i1, i2) {
return i1 - i2;
};
开始计算一下,哪个比较适合高富帅
alert(f1(10,5));
四、 所谓的类仍旧是函数
/*
JavaScript中没有类的语法,使用函数闭包(closure)模拟出来的
JavaScript中的String、Date等“类”都被叫做“对象”
*/
function Person(name, age) {
this.name = name;
this.age = age;
this.sayHello = function () {
alert("姓名为" + this.name + ",年龄为" + this.age);
};
}
var p1 = new Person("yeahwell", "20");
alert(p1); //没有new Person()时p1为undefind,new了之后p1为object Object
p1.sayHello();
p1.sex = "男"; //动态添加属性
alert(p1.sex);
假如改成这样
var p1 = Person("yeahwell", "20");
相当于把Person()函数的返回值赋值给p1,此时p1就是undefined啦。