学习js的第三天

对象

		 * JS中数据类型
		 * 	- String 字符串
		 *  - Number 数值
		 * 	- Boolean 布尔值
		 * 	- Null 空值
		 * 	- Undefined 未定义
		 * 		- 以上这五种类型属于基本数据类型,以后我们看到的值
		 * 			只要不是上边的5种,全都是对象
		 * 	- Object 对象
		 * 
		 * 
		 * 基本数据类型都是单一的值"hello" 123 true,
		 * 	值和值之间没有任何的联系。
		 * 
		 * 在JS中来表示一个人的信息(name gender age):
		 * 	var name = "孙悟空";
		 * 	var gender = "男";
		 * 	var age = 18;
		 * 如果使用基本数据类型的数据,我们所创建的变量都是独立,不能成为一个整体。
		 * /

对象的分类

		 * 	1.内建对象
		 * 		- 由ES标准中定义的对象,在任何的ES的实现中都可以使用
		 * 		- 比如:Math String Number Boolean Function Object....
		 * 	2.宿主对象
		 * 		- 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
		 * 		- 比如 BOM DOM
		 * 	3.自定义对象
		 * 		- 由开发人员自己创建的对象
//创建对象
/*
*使用new关键字调用的函数,是构造函数constructor
* 构造函数是专门用来创建对象的函数
*使用typeof检查一个对象时,会返回object
*
*/
var obj = new Object();
/*
			 * 在对象中保存的值称为属性
			 * 向对象添加属性
			 * 	语法:对象.属性名 = 属性值;
			 */
			//向obj中添加一个name属性
			obj.name = "孙悟空";
			//向obj中添加一个gender属性
			obj.gender = "男";
			//向obj中添加一个age属性
			obj.age = 18;
			/*
			 * 读取对象中的属性
			 * 	语法:对象.属性名
			 * 如果读取对象中没有的属性,不会报错而是会返回undefined
			 */
			//console.log(obj.gender);
			//console.log(obj.hello);
			/*
			 * 修改对象的属性值
			 * 	语法:对象.属性名 = 新值
			 */
			obj.name = "tom";
			/*
			 * 删除对象的属性
			 * 	语法:delete 对象.属性名
			 */
			delete obj.name;
			console.log(obj.age);

break 和continue

     * break关键字可以用来退出switch或循环语句
     * 	不能在if语句中使用breakcontinue
     * 	break关键字,会立即终止离他最近的那个循环语句
     */
    /*for(var i=0 ; i<5 ; i++){
    	console.log(i);
    	if(i == 2){
    		break;
    	}
    }*/

    /*for(var i=0 ; i<5 ; i++){
    	console.log("@外层循环"+i)
    	for(var j=0 ; j<5; j++){
    		break;
    		console.log("内层循环:"+j);
    	}
    }*/
    /*
     * 可以为循环语句创建一个label,来标识当前的循环
     * label:循环语句
     * 使用break语句时,可以在break后跟着一个label,
     * 	这样break将会结束指定的循环,而不是最近的
     */
    /*outer:
    for(var i=0 ; i<5 ; i++){
    	console.log("@外层循环"+i)
    	for(var j=0 ; j<5; j++){
    		break outer;
    		console.log("内层循环:"+j);
    	}
    }*/
    /*
     * continue关键字可以用来跳过当次循环
     * 	同样continue也是默认只会对离他最近的循环循环起作用
     */
    /*for(var i=0 ; i<5 ; i++){
    	if(i==2){
    		continue;
    	}
    	console.log(i);
    }*/
    outer:
        for (var i = 0; i < 5; i++) {
            for (var j = 0; j < 5; j++) {
                continue;
                console.log("-->" + j);
            }
            console.log("@--->" + i);
        }

基本和引用数据类型

  • 基本数据类型

    • String Number Boolean Null Undefined
        • 引用数据类型
        • Object
        • JS中的变量都是保存到栈内存中的,
        • 基本数据类型的值直接在栈内存中存储,
        • 值与值之间是独立存在,修改一个变量不会影响其他的变量
        • 对象是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,
        • 而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,
        • 当一个通过一个变量修改属性时,另一个也会受到影响
          */
     var a = 123;
       var b = a;
       a++;
       
       /*console.log("a = "+a);
       console.log("b = "+b);*/
       
       var obj = new Object();
       obj.name = "孙悟空";
       
       var obj2 = obj;
       
       //修改obj的name属性
       obj.name = "猪八戒";
    
       /*console.log(obj.name);
       console.log(obj2.name);*/
    
       //设置obj2为null
       obj2 = null;
    
       /*console.log(obj);
       console.log(obj2);*/
    
       var c = 10;
       var d = 10;
       //console.log(c == d);
    
       var obj3 = new Object();
       var obj4 = new Object();
       obj3.name = "沙和尚";
       obj4.name = "沙和尚";
    
       /*console.log(obj3);
       console.log(obj4);*/
       /*
        * 当比较两个基本数据类型的值时,就是比较值。
        * 而比较两个引用数据类型时,它是比较的对象的内存地址,
        * 		如果两个对象是一摸一样的,但是地址不同,它也会返回false
        */
       console.log(obj3 == obj4);
    

对象字面量

//创建一个对象
			//var obj = new Object();
			
			/*
			 * 使用对象字面量来创建一个对象
			 */
			var obj = {};
			
			//console.log(typeof obj);
			
			obj.name = "孙悟空";
			
			//console.log(obj.name);
			
			/*
			 * 使用对象字面量,可以在创建对象时,直接指定对象中的属性
			 * 语法:{属性名:属性值,属性名:属性值....}
			 * 	对象字面量的属性名可以加引号也可以不加,建议不加,
			 * 	如果要使用一些特殊的名字,则必须加引号
			 * 
			 * 属性名和属性值是一组一组的名值对结构,
			 * 	名和值之间使用:连接,多个名值对之间使用,隔开
			 * 	如果一个属性之后没有其他的属性了,就不要写,
			 */
			var obj2 = {
				name:"猪八戒",
				age:13,
				gender:"男",
				test:{name:"沙僧"}
			};
			
			console.log(obj2.test);
			

函数

 /*
         *函数是一个对象
         *函数中可以封装一些功能,在需要时可以执行这些功能
         *函数中可以保存一些代码在需要的时候调用
         *****
         */
        //创建一个函数
        var fun = new Function();
        console.log(typeof fun);
        //实际开发中很少用这种构造函数
        //创建一个函数对象
        //可以将要封装的代码以字符串的形式传递给构造函数
        var fun = new Function(
            "console.log('这是我的第一个js函数');"
        );
        fun();
        //使用函数声明来创建一个函数
        /*
        *语法:
            function 函数名([形参1,形参2,形参3……]){
                语句...
            }
        *
        */
        function fun2() {
            console.log("第二个函数");
        }
        fun2();
        var fun3=function(){
            console.log("这是一种函数赋值方式");
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值