对象,包装类

                      /*对象,包装类(上)*/
    // var obj = {      //对象是一种基础的变量类型,它和数组和function都属于引用值
    //  }                //对象有属性和方法                   


    // delete = 删除代码
    //当一个变量没经过声明就使用的话会报错,当一个对象的属性没有就使用的话,就会打印undefined


    /*对象的创建方法*/
    //  1.var obj = {}     plainObject  -->  对象字面量/对象直接量


    // 2.构造函数  [28:33 --> ]
    //    1) 系统自带的构造函数 new Object()  
    //    2) 自定义 
    
    /* 
      构造函数写对象时要用等号 
      构造函数命名规则:大驼峰式命名规则         
    */


    // 构造函数 例:[41:17 --> 46:28]
    // function Car () {
    //     this.name = '玛莎拉蒂';
    //     this.height = '1400';
    //     this.lang = '200';
    //     this.weight = 1000;
    //     this.health = 100;
    //     this.run = function () {
    //         this.health --;
    //     }
    // }

    // var car = new Car();
    // var car1 = new Car();
    // car.name = '兰博基尼';
    // car1.name = '法拉利';


    //例2:[57:26 --> 结束]
    // function Student(name, age, sex) {
        
    //     this.name = name;
    //     this.age = age;
    //     this.sex = sex;

    // }

    // var student = new Student("li", 18, "nan");



                               /*对象包装类下*/

    // 构造函数必须要加new [05:33 --> 07:23]

    /*
    构造函数内部原理
    1.在函数体最前面隐式的加上 this = {}
    2.执行this.xxx = xxx;
    3.隐式的返回this
    */

    //例1 [07:29 --> 09:50]
    // function Person(name, height, say) {
    //     //var this = {}
    //     this.name = name;
    //     this.height = height;
    //     this.say = function () {
    //         console.log(this.say)
    //     }
    //     // return this;
    // }

    // console.log(new Person('xiaowang').name);


    //例2[10:09 -->13:50]
    // function Person(name, height) {
    //     var thar = {};
    //     thar.name = name;
    //     thar.height = height;
    //     return thar;

    // }

    // var person = Person('xiaowang', 180);
    // var person1 = Person('xiaozhang', 175);

                        /*包装类*/
    // new String();
    // new Boolean();
    // new Number();

    /*
    [14:23 --> 20:03]
    原始值是不可以有属性和方法的,属性和方法只有对象可以有,这是对象独特的东西
    原始值是不可以有属性和方法的,但是为什么能调用了,因为它经历了一个过程叫做包装类
    */


    //例1:[21:48 --> 24:03]
    // var num = 4;
    // num.len = 3;
    // 转换为数字对象 <-- new Number(4).len = 3; --> 赋值给len = 3,  最后delete
    // new Number(4).len --> console.log(num.len);


    //例2[24:11 --> 29:21]
    // var str = "abcd"
    // str.length = 2;
    // new String('abcd').length = 2; delete
    // console.log(str);

    // console.log(str.length);
    // new String('abcd').length 


    //例3:[30:00 --> 36:45]
    // var str = "abc";
    // str += 1;
    // var test = typeof(str);
    // if (test.leng == 6) {
    //     test.sign = "typeof的返回结果可能为String"
        // new.String(test).sign = "typeof的返回结果可能为String"
    // }
    // new String(test).sign
    // // console.log(test.sign);


                              /*练习题*/
    //例题1:分析下面的javascript代码段:[43:16 --> 45:27]
    // function employee(name, code) {
    //     this.name = "wangli";
    //     this.code = "A001";
    // }

    // var newemp = new employee("zhangming","A002")
    // document.write("雇员姓名:" + newemp.name + "<br>")
    // document.write("雇员姓名:" + newemp.name + "<br>")
    // 输出的结果().(选择一项)

    //   A.雇员姓名: wangli  雇员代码:A001;
    //   B.雇员姓名:zhangming 雇员代码:A002;
    //   c.雇员姓名:null 雇员代码:null;
    //   d.代码有错误,无输入结果


    //例题2:[45:38 --> 47:51]
    // function Person(name, age, sex) {
    //     var a = 0;
    //     this.name = name;
    //     this.age = age;
    //     this.sex = sex;
    //     function sss() {
    //         a ++;
    //         document.write(a);
    //     }
    //     this.say = sss;
    // }

    // var oPerson = new Person();
    // oPerson.say();
    // oPerson.say();
    // var oPerson1 = new Person();
    // oPerson1.say()


    //例题3:下面这段JS代码执行完毕后x,y,z的值分别是多少?[49:44 --> 53:06]
    // var x = 1,
    //     y = z = 0;

    // function add(n) {            
    //     return n = n + 1;
    // }        
    // y = add(x);

    // function add(n) {          
    //     return n = n + 3;
    // }
    // z = add(x);

    
    //例题4:下面代码中console.log()的结果是{1, 2, 3, 4, 5}的选项是[56:00 --> 58:00]
    //A
    // function foo(x) {
    //     console.log(arguments);
    //     return x;
    // }
    // foo(1, 2, 3, 4, 5);

    // //B
    // function foo(x) {
    //     console.log(arguments);
    //     return x;
    // }(1, 2, 3, 4, 5);

    // //C
    // (function foo(x) {
    //     console.log(arguments);
    //     return x;
    // })(1, 2, 3, 4, 5)

    //D





    //例题5:请问以下表达式的结果是什么?[59:20 --> 1:01:22]
    // parselnt(3,8)
    // parselnt(3,2)
    // parselnt(3,0)


    //例题6:以下哪些是JavaScript语言typeof可能返回的结果 [1:01:22 -->1:01:42]
    /*
    1.string
    2.array
    3.object
    4.null
    */


    //例题7:看看下面alert的结果是什么 [1:01:56 --> 1:04:49]
    // function b(x, y, a) {
    //     a = 10;
    //     alert(arguments[2]);
    // }
    // b(1, 2, 3);
    // 如果函数体改成下面结果又会如何?
    
    // arguments[2] = 10;
    // alert(a);










</script>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值