JavaScript(2)
对象
1、对象赋值
person.name = "gyh"
"gyh"
person.name
"gyh"
2、使用一个不存在的对象属性,不会报错(undefined)
person.haha
undefined
3、动态的删减属性,通过delete删除对象的属性
delete person.name
true
JavaScript 循环
for (i = 0; i < cars.length; i++) {
text += cars[i] + "
";
}
等价于
text += cars[0] + "
";
text += cars[1] + "
";
text += cars[2] + "
";
text += cars[3] + "
";
text += cars[4] + "
";
text += cars[5] + "
";
for 循环
for 循环的语法如下:
for (语句 1; 语句 2; 语句 3) {
要执行的代码块
}
for in 循环
JavaScript for/in 语句遍历对象的属性:
var person = {fname:"Bill", lname:"Gates", age:62};
var text = "";
var x;
for (x in person) {
text += person[x];
}
Date
Date 对象方法
方法 | 描述 |
---|---|
Date() | 返回当日的日期和时间。 |
getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6)。 |
getMonth() | 从 Date 对象返回月份 (0 ~ 11)。 |
getFullYear() | 从 Date 对象以四位数字返回年份。 |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒数。 |
javascript Date format(js日期格式化)
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(H)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format("yyyy-MM-dd HH:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d H:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function(fmt)
{ //author: meizz
var o = {
"M+" : this.getMonth()+1, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth()+3)/3), //季度
"S" : this.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt))
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
return fmt;
}
调用方法:
var time1 = new Date().format("yyyy-MM-dd HH:mm:ss");
var time2 = new Date().format("yyyy-MM-dd");
now = new Date(XXXXXXXXX)
now.toLocaleString
now.toLocaleString()
"2020/2/18 上午10:49:35"
JSON
json.stringify()
JSON.stringify()的作用是将 JavaScript 对象转换为 JSON 字符串,而JSON.parse()可以将JSON字符串转为一个对象。
我用 JSON.stringify() 将对象 a 变成了字符串 c ,那么我就可以用 JSON.parse() 将字符串 c 还原成对象 a。
let arr = [1,2,3];
JSON.stringify(arr); //'[1,2,3]' => 将对象 arr 变成了字符串 arr。
typeof JSON.stringify(arr); //string => 输出类型
let string = '[1,2,3]';
console.log(JSON.parse(string)) //[1,2,3] => (3) [1, 2, 3]
0: 1
1: 2
2: 3
console.log(typeof JSON.parse(string)) //object
在使用 JSON.parse() 需要注意一点,由于此方法是将JSON字符串转换成对象,所以你的字符串必须符合JSON格式,即键值都必须使用双引号包裹:
let a = '["1","2"]';
let b = "['1','2']";
console.log(JSON.parse(a));// Array [1,2]
console.log(JSON.parse(b));// 报错
JSON.stringify()的几种妙用
1.判断数组是否包含某对象,或者判断对象是否相等。
//判断数组是否包含某对象
let data = [
{name:'echo'},
{name:'听风是风'},
{name:'天子笑'},
],
val = {name:'天子笑'};
JSON.stringify(data).indexOf(JSON.stringify(val)) !== -1;//true
//判断两数组/对象是否相等
let a = [1,2,3],
b = [1,2,3];
JSON.stringify(a) === JSON.stringify(b);//true
2.让localStorage/sessionStorage可以存储对象。
//存
function setLocalStorage(key,val){
window.localStorage.setItem(key,JSON.stringify(val));
};
//取
function getLocalStorage(key){
let val = JSON.parse(window.localStorage.getItem(key));
return val;
};
//测试
setLocalStorage('demo',[1,2,3]);
let a = getLocalStorage('demo');//[1,2,3]
3、JSON.stringify()与toString()的区别
这两者虽然都可以将目标值转为字符串,但本质上还是有区别的,比如
let arr = [1,2,3];
JSON.stringify(arr);//'[1,2,3]'
arr.toString();//1,2,3