javascript入门基础篇重点 第六节

JSON对象补充相关(值获取、修改、删除属性、属性是否存在、遍历等)

值的获取两种方式(.  与 [ ])
修改值
删除对象与删除属性(赋null /delete的应用点)
检查属性是否存在对象  (in 的用法)
hasOwnProperty的作用?
对象的循环遍历 (for in)
对象与字符串的互转如何实现?   --->  JSON.stringify  与  JSON.parse/eval、

例如:

<script type="text/javascript">
JSON 对象  Object--->$keywordIndex{2} RegExp 
var json = {
"name":"xxxxxx",
"user.age":18,     user.age是两个字符组合必须加""号不然会报错
"say":function(){
console.log("说话了...");
}
};

获取值方式
console.log(json["user.age"]);

修改
json.name = "Key";
console.log(json["name"]);


删除对象与删除属性
json = null;                          删除整个josn对象
delete json.name;               delete只能删除属性或变量不能删除对象
console.log(json.name);

检查属性是否存在对象 in  结果返回true就代表存在
delete json.name;
console.log("name" in json);


prototype--------------------> 该对象包含了其对应子类型所持有的特征
console.log("toString" in json);
console.log("valueOf" in json);----------->拆解函数使函数成为基本string类型
console.log("constructor" in json);

hasOwnProperty(); --------------->只检查对象自己的属性,继承的不会检查
console.log(json.hasOwnProperty("toString"));

循环 for ... in
for(var key in json){
console.log(key + "===" + json[key]);


把对象转变成字符串

alert(JSON.stringify(json));

把字符串转变成json对象 JSON.parse(str);eval函数获取json对象
var str = "{\"name\":\"Key\",\"age\":18}";
str = JSON.parse(str);
str = eval("("+str+")");
alert(typeof str +"===" + str.name);
</script>


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

定时器的解说 (setInterval  与 setTimeout 以及 定时器的清除等)

定时器:
循环执行:
setInterval(函数名 , 间隔);  /  setInterval('函数名()' , 间隔); 
单次执行:
setTimeout(函数名  , 延迟);  /  setTimeout('函数名()' , 间隔);---------->只执行一次
注意:定时器函数里面第一个参数是函数名字,如果要执行的函数内部具有参数的话,可以写在匿名函数里面进行调用。

例如:

setInterval(a,1000);------->当a后面添加()时表示立即执行则变为每一秒执行一次a函数

function a(){

console.log(1);

}


setInterval("a(2,4)",1000);---------->调用a函数,并且""号里面也可以写js代码,表示立即执行

function a(c,d){
console.log(c+d);
};


如何清除setInterval定时器呢? ---> clearInterval(timer);
var index = 0;
var timer = setInterval(function(){
index++;
if(index==5){
clearInterval(timer);//清除定时器
}
console.log(index);//结果1 2 3 4 5
},1000);


setTimeout  单次执行 ---> clearTimeout(tim);
var tim = setTimeout(function(){
console.log("执行我...");
},2000);


模拟用法
模拟网站弹出一次是否是会员
var person = "svip";
var x = setTimeout(function(){
if(person=="vip"){
clearTimeout(x);
}else{
alert("请成为会员哦..");
}
},2000);


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

日期对象Date的讲解

日期对象:
var date = new Date();  //获取现在时间     
getFullYear();                 //获取全年
getMonth();                   //获取月份
getDate();                      //获取日期
getDay();                       //获取星期
getHours();                   //获取小时
getMinutes();               //获取分钟
getSeconds();               //获取秒数
getTime();                    //获取1970年1月1号到现在的毫米数 

区分:

var month = date.getMonth()+1;//结果:0~11....原因是外国的的月份是0-11 而中国是1-12(真实)所以要在后面加1

var week = date.getDay();//获取星期几  0-->6

例如:

function load(){
var d = new Date();---------------------------->var d = new Date();此行代码执行时不能放到load函数外面,因为在load函
var year = d.getFullYear();                          
数外面的话在获取浏览器时间时只执行一次,导致在浏览器显示时时间不
var month = d.getMonth()+1;                      会自动刷新,
而在函数里面时可以循环执行,不断更新时间。
var day = d.getDate();
var week = d.getDay();
var hours = d.getHours();
var min = d.getMinutes();
var sec = d.getSeconds();
  
szDom.innerHTML = year+"年"+month+"月"+day+"日 "+getWeek(week)+(hours<10?"0"+hours:hours)+":"+(min<10?"0"+min:min)+":"+(sec<10?"0"+sec:sec);                                                             |
};                                                                                                                                对时间进行加0补全
load(); 

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


             
  for循环是瞬间的过程!
     for(var i=0;i<doms.length;i++){
           doms[i].onclick = function(){
        alert(i);
           }
     }
 
注意:此时在for循环当中的i虽然是从0 ~ doms.length-1,但是当在循环中具有事件的时候,事件是立马注册的。for循环结束后相当于依次给0~doms.length-1个对象绑定了事件,并且此时的i已经变成doms.length。记住一点,函数只有在执行的时候才会调用,所以当我们执行触发点击事件的时候,从内存当中再去取变量i值的时候,就只能获取i的值为doms.length了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值