javascript

  • 最早是网景公司为扩展其浏览器功能而创造,而后因和Sun公司合作而改名javascript。其和Java语言没有任何关系犹如雷锋和雷峰塔
  • javascript的解释器常见有Google公司的v8引擎等, 基于v8引擎的Chrome浏览器、Node.js命令行都可解释执行javascript。

数据类型

  1. number
    • 所有的Integer value、所有的float value都是number。 特殊点的是NaN代表的意思是Not a Number, 但是typeof NaN会返回number*
  2. boolean
    • 该类型只有两个值truefalse *
  3. string
    可以使用英文双引号也可以使用单引号,转义字符也是\ (姑且称为一撇一捺的捺)
  4. object
    • 包括Array等等,一切皆对象。特殊点的是常对象null *
  5. undefined
    undefined可以算为一种类型,但是他也只有一个值就是undefined, 这个常对象undefined一般不用,大都由js解释器给出某个对象是当前值等于undefined
  6. symbol
    Symbol类型是ES6新加的哟...

Javascript是弱类型语言

函数

  1. Javascript是原型继承的语言, 是基于对象的语言(最大的对象是Global对象,在浏览器中这个Global对象就是window),这是javascript的精粹。。

    Java语言是基于类的语言,基于类的语言都有采用类的继承(派生)来大大提高代码复用率,而Javascript的原型继承不是基于类的,没有类的继承和派生。

  2. Javascript是基于对象的语言,也是"一切皆对象"。函数也是对象。语法上能出现变量的地方也能出现表达式,能用表达式的地方就也能用变量,就能用对象,就能用函数对象。
  3. Javascript闭包是说: a: 函数对象的局部变量不能被函数外部访问. b: 函数对象可以自由访问包含该函数定义的父函数的形式参数和局部变量
/*这里定义并立即调用了全局对象window的一个匿名子对象。*/
;(function() {
    console.log("Call foo function ...");
    var para = {name: "libig", age: 17};
    foo(para);
    console.log("Call foo function have back!!!")
})();

/*这里定义了全局对象window的一个名为foo的子对象, 并将匿名函数对象赋给了foo。因此 foo是一个函数对象*/
var foo = function (o)
{
    alert("INFO: Some body call foo function.");
    var ret = confirm("Print console log, YES or NO?");
    if (ret === true) {
        var prefix = prompt("Please input a word for log prefix");
        console.log(prefix + "typeof o return ", typeof o, "value: ", o);
        console.log(prefix + "foo called.");
    }
}

/*这里定义了全局对象window的一个名为size的子对象,赋值0*/
var size = 0;

/*这里直接定义了全局对象window的一个名为do的子对象。do是一个函数对象*
function do() 
{
    console.log("this指代:" this); /*此时的this指代的就是全局对象window*/
}


/*这里定义了全局对象window的一个名为bar的子对象。*/
var bar = function (name) 
{
    var age;
    var sex;
    console.log("this指代: ", this);/*此时this指代全局对象window*/

    /*bar又定义了一个匿名函数对象并立即调用,匿名函数对象返回值初始化了bar函数的局部变量content*/
    var  content = function () 
    {
        console.log("this指代: ", this); /*此时的this指代的也是全局对象window*/
        return name;
    }();

    console.log("content: ", content);

    console.log("this指代: ", this);/*此时this指代全局对象window*/
    
}

/*调用bar*/
bar("Muhaha"); /*javascript解释器执行函数调用时,会增加this对象和实参列表数组arguments两个输入参数*/


序号 编辑原因 时间
1 头一回在园子使用markdown 2017-09-01
2
posted on 2017-09-01 11:28  來時的路  阅读(136)  评论(0编辑  收藏  举报