在Js中一切皆对象
但是某些对象还是和其他对象不太一样,为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串:
typeof 123; // 'number' typeof NaN; // 'number' typeof 'str'; // 'string' typeof true; // 'boolean' typeof undefined; // 'undefined' typeof Math.abs; // 'function' typeof null; // 'object' typeof []; // 'object' typeof {}; // 'object'
注意:虽然包装对象看上取和原来的值一摸一样,显示出来也是一摸一样,但他们的类型已经变成Object了!所以,包装对象和原始值用===比较会返回false
typeof new Boolean(true) //object new Boolean(true)===true //false
所以闲的蛋疼也不要使用包装对象!尤其是String 对象
最后然和对像都可以用toString()方法吗?
NO,null和undefined就没有,这两个值要除外,虽然null还伪装成object类型
Date
在js中Date是不是通常用来获取时间啊
var now =new Date();
now; //Tue Dec 14 2021 09:09:40 GMT+0800 (中国标准时间)
now.getFullYear(); //年份2021
now.getMonth(); //月份 12
now.getDate(); //几号 14
now.getDay(); //星期几 2
now.getHours(); //小时 24小时制
now.getMinutes(); //分钟
now.getMilliseconds(); //毫秒
now.getTine(); //以number形式表示的时间
注意:当前时间是浏览器获取的系统时间,不一定准确,因为用户可以把时间设置为任何值
这个时候如果我们想用指定时间
var d=new Date(2021,12,11,20,15,30,123)
//Tue Jan 11 2022 20:15:30 GMT+0800 (中国标准时间)
看坑爹的地方,就是js的月份范围用的整数表示的是0~11,0表一月,11表示12月,我们传入的是12!这绝对是Js设计师脑子抽了一下,现在修复是不可能了所以要记住
月份从0开始:0=1,1=2.。。。。11=12
RegExp
在看着之前让我们来聊一聊正则表达式
\b:可以匹配一个数字,\w:可以匹配一个字母或数字
00\b可以匹配001但不可以00A
\w\w可以匹配js
‘.’可以匹配任意字符
'js.'可以匹配 jsp等等
*匹配任意个字符(包括0个),+至少一个字符,?表示0个或1个字符,{n}表示n个字符,{n,m}表示n-m个字符,\s可以匹配一个空格(包括tap空白符),^开头,$结尾
例子
\b{3}:匹配3个数字
\s+至少匹配一个空格
var re=new RegExp('正则表达是')
两个方法text()匹配是否适合exce()分组
re.text('11111'); //flase
re.exce(' aaa'); //null
JSON
什么是JSON
JSON是javaScript Object Notation的缩写,它是一种数据交换格式
序列化stringify(对象名,筛选,格式)
例子
'use strict'
var xiao={
name='小明',
age=12,
sex='男',
grade=null
}
var s=JSON.stringify(xiao,['name','age'],' ');
console.log(s);
也可以传入函数对,对象每个键值都会先被函数处理
'use strict'
var xiao={
name='小明',
age=12,
sex='男',
grade=null
}
var a=(key,value)=>{
if(typeof(value)=='String'){
return value.toUpperCase();
}
}
var s=JSON.stringify(xiao,a,' ');
console.log(s);
反序列化
JSON.parse()可以接受一个函数,用来转换解析出的属性
var obj = JSON.parse('{"name":"小明","age":14}', function (key, value) {
if (key === 'name') {
return value + '同学';
}
return value;
});
console.log(JSON.stringify(obj)); // {name: '小明同学', age: 14}
这个就是这么简单