第七章 类的操作和json简介

第七章 类的操作和json简介
1.类的操作
    1.通过style标签,每修改一次样式,浏览器就需要重新渲染一次
        这样的执行性能比较差,而且这种形式当我们要修改多个样式时,也不方便
    2.我们可以通过修改元素的class属性来间接修改样式
        这样我们之需要修改一次,即可以修改多个样式
        浏览器只需要重新渲染页面一次,性能较好
        并且这种方式可以将行为和表现分开,低耦合
        通过box.className+=" class2";//可以在原来样式的基础之上添加样式
        
        //定义一个函数,用来向一个元素中添加指定的class属性值
		/*
		 * 参数:
		 * 	obj 要添加class属性的元素
		 *  cn 要添加的class值
		 *
		 */
		function addClass(obj , cn){
			//检查obj中是否含有cn
			if(!hasClass(obj , cn)){
				obj.className += " "+cn;
			}
		}
		/*
		 * 判断一个元素中是否含有指定的class属性值
		 * 	如果有该class,则返回true,没有则返回false
		 *
		 */
		function hasClass(obj , cn){
			//判断obj中有没有cn class
			//创建一个正则表达式
			//var reg = /\bb2\b/;
			var reg = new RegExp("\\b"+cn+"\\b");
			return reg.test(obj.className);
		}
		/*
		 * 删除一个元素中的指定的class属性
		 */
		function removeClass(obj , cn){
			//创建一个正则表达式
			var reg = new RegExp("\\b"+cn+"\\b");
			//删除class
			obj.className = obj.className.replace(reg , "");
		}
		/*
		 * toggleClass可以用来切换一个类
		 * 	如果元素中具有该类,则删除
		 * 	如果元素中没有该类,则添加
		 */
		function toggleClass(obj , cn){
			//判断obj中是否含有cn
			if(hasClass(obj , cn)){
				//有,则删除
				removeClass(obj , cn);
			}else{
				//没有,则添加
				addClass(obj , cn);
			}
		}
2.json简介
    js对象只有js自己认识,其他语言都不认识
    json就是特殊格式的字符串,这个字符串可以被任意语言识别
        并且可以转换为任意语言中的对象json在开发中主要用来数据的交互
        
    1.json(JavaScript Object Notation,js对象表示法)
        json和js对象的格式一样,只不过json字符串中的属性名必须加双引号
        json分类
            1.对象{};
            2.数组[];
        json中允许的值:
            1.字符串
            2.数值
            3.布尔值
            4.null(undefined不行)
            5.对象(单纯的对象,不能是函数)
            6.数组
    2.将json字符串转换为js中的对象
        在js中,为我们提供了一个工具类,就叫JSON
        这个对象可以帮助我们将json对象转换为js对象,也可以将一个js对象转换为json
    
        json->js对象
            JSON.parse()
                可以将json字符串转换为js对象
                它需要一个json字符串作为参数,会将该字符串转换为js对象
        js对象->json
            JSON.stringify()
                可以将一个JS对象转换为JSON字符串
                需要一个js对象作为参数,会返回一个json字符串
    3.JSON这个对象在IE7及以下的浏览器不支持,所以会在这些浏览器中报错
        IE7及以下要使用eval()函数(不推荐)
            如果使用eval()执行的字符串中含有{},它会将{}当成代码块
            如果不希望将其当成代码块解析,则需要再字符串前后各加一个()
            eval()这个函数功能很强大,可以直接执行一个字符串中的js代码
                但是开发中尽量不要使用,首先它的执行性能比较差,然后它还具有安全隐患
    4.最终方案
        如果需要兼容IE7及以下json操作,则可以通过引入一个外部js文件来处理
            然后操作跟其他浏览器一样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值