天天看点

js-5:常用的内置对象和使用方法

###############    JS内置对象-自定义对象     ################

/*
js中内置的对象和方法:
* */


//js中自定义对象
var person = {name:"andy",age:18};//在js对象中,属性名默认不需要加引号,你加了js也会给你去掉的,值可以是单引号和双引号,单引号会转换成双引号
console.log(person);

// 单个取属性
console.log(person.name);
console.log(person.age);

//遍历取属性
for (var i in person){
    console.log(i);
    console.log(person[i])
}

//自定义对象的第二种方式:
var person2 = new Object();
person2.name="xiaoxiao";
person2.age=22;
console.log(person2);      

###############    JS内置对象-Date对象     ################

//内置的Date对象,就相当于python中的模块

var d1 = new Date();
console.log(d1); //这是默认生成当前时间,这是一个时间对象,
console.log(d1.toLocaleString()); //这是一个字符串
var d2 = new Date("2004/3/20 11:12");
console.log(d2.toLocaleString());

/*

var d = new Date();
//getDate()                 获取日
//getDay ()                 获取星期
//getMonth ()               获取月(0-11)
//getFullYear ()            获取完整年份
//getHours ()               获取小时
//getMinutes ()             获取分钟
//getSeconds ()             获取秒
//getMilliseconds ()        获取毫秒
//getTime ()                返回累计毫秒数(从1970/1/1午夜)

* */      

###############    JS内置对象-json对象      ################

//json对象
var s = '{"name":"andy","age":12}'; //这是一个字符串,怎么使用js转换成为json格式的,
var ret = JSON.parse(s);
console.log(ret);
console.log(typeof ret); //类型是一个对象

// 怎么把js中的对象,转换成字符串呢?
var s2 = JSON.stringify(ret);
console.log(s2);
console.log(typeof s2); //类型是一个字符串

// 这两个一定要学会,后面使用ajax传递数据的时候,会使用到      

###############    JS内置对象-Math对象      ################

//math对象
var n = -5;
n2 = Math.abs(n); //绝对值
console.log(n2);
Math.floor(5.9); //直接往下去,这就是5,
Math.min(1,2);
Math.max(1,2);
Math.pow(10,2); //返回x的y次幂
Math.random(); //返回一个0-1之间的随机数
Math.round(5.5); //四舍五入      

###############    JS内置模块-RegExp模块,正则模块      ################

//RegExp对象,正则,类似python中的re模块
//生成RegExp对象,
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$");
//这是以字母开头,5-11位的字母数字下滑线组成
var reg2 = reg1.test('xiaoming');
console.log(reg2); //true
var reg3 = reg1.test('2xiaoming');
console.log(reg3); //false

//简单写法
console.log(/^[a-zA-Z][a-zA-Z0-9_]{5,11}$/.test("xiaoming"));
console.log(/^[a-zA-Z][a-zA-Z0-9_]{5,11}$/.test("3xiaoming"));

//这里面有很多的坑
// 1,re表达式内部不能加空格,否则会产生意想不到的错误,
// console.log(/^[a-zA-Z][a-zA-Z0-9_]{5, 11}$/.test("xiaoming"));

//2,test里面不写值,默认不是空,是校验的一个undefined,这是大坑啊,
console.log(/^[a-zA-Z][a-zA-Z0-9_]{5,11}$/.test());//等同于console.log(/^[a-zA-Z][a-zA-Z0-9_]{5,11}$/.test("undefined"));

//3,字符串替换
//两种模式,g,i,
var ss = 'Ahahaha';
var sss = ss.replace("a","哈");//这样写只会替换第一个a,这个要记住,
var sss = ss.replace(/a/,"哈");//这样写只会替换第一个a,这个要记住,这是正则的写法
var sss = ss.replace(/a/g,"哈");//加一个g,就是说全局有多少就替换多少,
var sss = ss.replace(/a/gi,"哈");//加一个i,就是说忽略大小写,都替换
console.log(sss);      

###