JavaScript(2)

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

你可能感兴趣的:(JavaScript(2))