2017-03-23面向对象预习笔记

2017-03-23  本文已影响0人  GodlinE

javascript 的组成

基本类型和复杂类型

 var str = "demoString";
    console.log(typeof str);
    var number = 10;
    console.log(typeof number);

    console.log(typeof null);                   //Object
    console.log(null instanceof Object);        //true |false(错误的)

    var obj = {};
    if (typeof obj == "object")
    {
        console.log("有值");
    }

    var a;
    //if (a == undefined)
    if (typeof a == "undefined")
    {
      console.log(a);
    }

等于和全等于符号说明

null 和 undefined 的区别
变量的值永远都不可能等于 null ,除非我们手动赋值 null
设置变量为 null 是告诉系统这个变量不再使用,可以把占用的内存空间释放

值类型和引用类型

值类型和引用类型的赋值

var str1 = '让我掉下眼泪的,不止作业的酒';
var str2 = str1 ;
console.log(str1  == str2);//true
//修改变量的值
str1 = '让我依依不舍的,不止你的温柔'
console.log(str1);
console.log(str2);
var obj1 = {name:'zs'};
var obj2 = obj1;
obj1.name = 'lisi';
console.log(obj2.name);  //lisi
//该行代码切断 obj2和obj1 的联系
obj1 = {age:22};  
console.log(obj2.age);  
//输出 undefined

值类型和引用类型在函数中的使用

<script>
function func(param){
        console.log(param);//我是字符串
        param = '我也是一个字符串';
        console.log(param);
}
var a = '我是字符串';
func(a);
console.log(a);
</script>
<script>
function foo(obj){
        console.log(obj.name);//zhangsan
//尝试修改形参的值
//obj.name = 'lisi';
obj = {
          name:'哗啦哗啦';
        }
obj.name = 'lisi';
}
var o = {name:'zhangsan'};
foo(o);
console.log(o.name,'_____');
</script>

//此处例子并未显示出引用类型赋值在函数内部如果改变的话,会对函数外部造成影响 ???

对象的动态特性

//点语法使用
//创建要给空的对象
var obj = {};
//动态添加属性
obj.name = 'zhangsan';
console.log(obj.name);
//修改属性
obj.name = 'lisi';
console.log(obj.name);
//区分添加还是修改:在通过点语法的方式访问属性的时候,先检查该属性是否存在,如果存在就是修改,如果该属性不存在,那么就是添加
//添加方法
obj.showName = function(){
          console.log('我的名字');
}
obj.showName();
//修改方法
obj.showName = function(){
        console.log('哈哈哈哈');
}
obj.showName();
//输出对象的属性
//关键字 delete
//语法:delete  对象.属性
delete obj.name;
console.log(obj.name);
//中括号语法[]
var obj = {};
var name = 'testName';
//注意在使用[]语法的时候,key 必须是字符串需要加""
obj[name] = 'zhangsan';
//name 是 window 的name
console.log(obj);
obj["name"] = "lisi";
console.log(obj["name"]);
//添加方法
obj['showName'] = function(){
        console.log('我的名字');
} 
obj['showName']();
//修改方法
obj['showName'] = function(){
        console.log('哈哈哈哈----');
}
obj['showName']();
//删除对象的属性
delete obj['name'];
console.log(obj['name']);  //undefined
obj['background color'] = 'red';
console.log(obj);
上一篇下一篇

猜你喜欢

热点阅读