JavaScript日记(十三)完

通过style属性来修改元素的样式,每修改一个样式,浏览器就需要重新渲染一次页面,这样的执行性能较差,而且这种形式当我们要修改多个样式时也不方便

box.style.width="200px";
box.style.height="300px";

我们可以通过修改元素的class属性来间接修改样式

box.className="b2";  //将要修改的样式写在class=”b2”、id=”box”的div中,再将box的class修改为b2
box.className+=" b2";  //使box既有b1的样式又有b2的样式,b2前不要忘记写空格

定义一个函数,用来向一个元素中添加指定的class属性。参数1:obj,要添加class属性的元素;参数2:要添加的class值

function addClass(obj,cn){
    if(!hasClass(obj,cn)){
        obj.className+=" "+cn;
    }
}
function hasClass(obj,cn){  //判断一个元素中是否含有指定的class属性值,防止向内添加重复的属性
    var reg=new RegExp("\\b"+cn+"\\b");
    return reg.test(obj.className);  //有b2返回true,没有返回false
}
function removeClass(obj,cn){
    var reg=new RegExp("\\b"+cn+"\\b");
    obj.className=obj.calssName.replace(reg,"");
}
function toggleClass(obj,cn){  //切换类,如果元素中有则删除,没有则添加
    if(hasClass(obj,cn)){
        removeClass(obj,cn);
    }else{
        addClass(obj,cn);
    }
}
addClass(box2,"b2");  //添加
removeClass(box,"b2");  //移除

JSON(JavaScript Object Notation JS对象表示法):

JS中的对象只有JS自己认识,其他的语言都不认识。JSON就是一个特殊格式的字符串,这个字符串可以被任意语言识别,并且可以转换为任意语言的对象。JSON在开发中主要用来数据的交互。JSON和JS对象的格式一样,只不过JSON字符串中的属性名必须加双引号,其他的和JS语法一致

JSON分类:

1.对象{ }

var obj='{"name":"孙悟空","age":18}';

2.数组[ ]

var arr='[1,2,3,"hello",true]';

JSON中允许的值:字符串、数值、布尔值、null、对象、数组

将JS字符串转换为JSON对象:

在JS中提供了一个JSON工具类,这个对象可以帮助我们将JSON和JS对象相互转换,但在IE7及以下不支持

json—>js对象:JSON.parse(),用一个JSON字符串作为参数,会将该字符串转换为JS对象并返回

js对象—>json:JSON.stringify(),用一个JS对象作为参数,返回一个JSON字符串

eval(),这个函数可以用来执行一端字符串形式的JS代码,并将执行结果返回。如果使用eval()执行的字符串中含有{},它会将{}当成是代码块,如果不希望将其当做代码块解析,则需要在字符串前后加一个()。此函数功能强大,可以直接执行一个字符串中的JS代码,开发中尽量不要使用,执行性能较差且有安全隐患

var str='{"name":"孙悟空","age":18}';
var obj=eval("("+str+")");

(作者观看的学习视频:B站尚硅谷)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值