JavaScript初探之二_函数特性

(承接JavaScript初探之一_HelloWorld)

一、 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啦。



作者:沙漏哟
出处:计算机的未来在于连接
本文版权归作者和博客园共有,欢迎转载,请留下原文链接
微信随缘扩列,聊创业聊产品,偶尔搞搞技术
原文地址:https://www.cnblogs.com/yeahwell/p/5226076.html