美文网首页
牛客笔记

牛客笔记

作者: 旧路依旧 | 来源:发表于2017-12-21 14:57 被阅读0次

    javaScript 共有5种基本数据类型:Null,Undefined,String,Number,Boolean

    1.下面代码的执行结果:

    '''

    var arr = [];

    arr[0] = 0;

    arr[1] = 1;

    arr.foo = "v";

    alert(arr.length);  //结果为2

    '''

    解析:1.数组也是对象;2.对象不能用length返回其拥有的属性数量

    arr.length,对arr对象的length属性进行一个访问

    arr.foo = 'hello' 对arr对象创建一个属性,所以.foo 跟.length地位是并列的:就是arr的一个属性,同时arr的数组方法跟这些属性是毫不相关的

    2.

    '''

    var color  = 'green';

    var test4399 = {

    color:'blue',

    getColor:function(){

    var color ='red';

    alert(this.color);

       }

    }

    var getColor = test4399.getColor;//即var getColor = function(){var color = "red";alert(this.color);};

    getColor();          //执行getColor()函数时this指向的window,因为window.color为green,所以弹出green

    test4399.getColor();//此时this指向的是test4399,test4399.color为blue,所以弹出blue

    '''

    结果:green , blue

    getColor();相当于普通的函数调用,此时this指向window,this.color应该为全局变量的值

    test4399.getColor();此时this指向调用函数的对象test4399,因此this.color应该为对象的属性值

    知识点一:  js函数调用时加括号和不加括号的区别.不加括号相当于把函数代码赋给等号左边,加括号是把函数返回值赋给等号左边。

    知识点二:  js中this的用法,this总是指向调用它的对象,倒数第二行的getColor为windows调用的,倒数第一行的getColor是test4399对象调用的

    3.执行如下程序:

    '''

    var x=0;

    switch(++x) {

        case0: ++x;

        case1: ++x;

        case2: ++x;      //没有break,结果为3.

    }

    '''

    4.

    var obj = {};

    obj.log= console.log;

    obj.log.call(console,this);

    相关文章

      网友评论

          本文标题:牛客笔记

          本文链接:https://www.haomeiwen.com/subject/biiqjxtx.html