JavaScript--学习2

来源:互联网 发布:网络教学 编辑:程序博客网 时间:2024/06/06 07:37

/============对象的创建================== ========/
//建立一个空对象

var mObj = { };

//添加属性 对象访问属性 两种方式

mObj.name = "mike";mObj["age"] = 20;//给对象添加方法mObj.say = function () {  alert("对象的方法");};

//删除属性

delete mObj.name;delete mObj["age"];

//建立带属性的对象

var myObj = {  "name":"wangchengmeng",  "age":18};

//使用new关键字

var obj = new 类名();

//访问对象的属性

alert(myObj.name+"==="+myObj.age);

//使用for in循环遍历对象中的属性

for(var attr in mObj) {  console.log(mObj[attr]);}

/==============Date对象==================/

var date = new Date();alert(date.toLocaleDateString()); //获取到本地的时间alert(date.getFullYear());  //获取整个年份  2016alert(date.getYear()); //获取的 2016 - 1900

/===================函数对象=============/

//一切皆对象 在JS中 函数也是对象 还可以自己给函数对象添加属性和方法
//使用构造方式创建函数

var add = new Function("a","b","return a + b");add(1, 2);

/**
* 函数中的属性:
* 1、 length(形式参数个数)
* 2、name(名称)注意只有声明式才有,而且有的浏览器不支持(IE)
* 3、prototype:对象的原型对象
*/
//prototype

Programer.prototype.getName = function () {  return this.name;}function Programer(name) {  this.name = name;}var p1 = new Programer("Android");var p2 = new Programer("IOS");p1.getName();p2.getName(); //p1  p2本身没有定义getName方法,但是都可以访问,说明这两个对象共享 prototype

/**
* 注意:
* 当前对象、构造函数、构造函数的prototype对象上有同名的函数时,使用当前对象调用该函数,使用该函数的查找顺序为:
当前对象 > 构造函数 > 构造函数的prototype对象
*/

//函数对象中的方法

function conect(a,b){  console.log(a+"=="+b);}

//常规调用

window.conect("first","second");//1、callconect.call(window,"first","second");//window是调用者对象 后面是参数//2、applyconect.apply(window, ['first', 'second']);//eg 1var age = 20;  //全局变量var user = {   age : 11, //局部变量 首先访问  info:function(name,gender){    alert("name:" + name + "gender:" + gender + "age:" + age);  }};

//常规调用

user.info("Joson","girl")user.info.call(user, "mike", "man");user.info.apply(user, ['mike', 'man']);

//函数的闭包
/**
* 闭包 就是为了防止内部变量被修改
*/

function closePackage() {  var i = 0;  return function () {    i++;    return i;  }}var result = closePackage();alert(result()); //1alert(result()); //2alert(result()); //3alert(result()); //4

/======================类====================/
//JavaScript定义一个类必须采用一个函数定义。该函数是被称为构造函数,该函数的名字被称为类名。
//空类

function User() {}

//创建类的对象

var user = new User();user.name = "holly";user.getName = function () {  return this.name;};

//带参数的类

function getName() {  return this.name;}function Car(name,size) {  this.name = name;  this.size = size;  this.getName = getName;}

//创建对象

var car = new Car("BMW","200*400");car.getName();

/===================正则表达式=====================/

/**
* 正则表达式 的匹配规则
* . 表示任意字符
* \d 表示数字字符
* \D 表示非数字字符
* \w 表示任意数字 字母字符
* \W 表示任意非字母 数字字符
* [a-z] 表示从a - z 任意一个字符
* () 括号中的分为一组
* {n} 某个字符出现n次 [a-z]{n} 表示 a-z之间的任意一字符出现n次
* {n.} 至少出现n次
* {n,m} 出现n-m次
* * 出现0或者多次
* +出现一次或者多次
* ?出现0或者一次
*
*/

//创建一个正则对象

 var reg = /\d/ig; var regExp = new RegExp(reg);

//解释:

 var reg = new RegExp(pattern,flag); pattern----匹配的规则 flag-----匹配的模式   i(忽略大小写)  m(多行查找)  g(全文查找) pattern一定在 \ \之间

//方法用途(重点)

RegExp对象RegExp.test(str);RegExp.exec(str);String对象String.search(reg)String.match(reg)String.replace(reg,str2)String.split(reg)var url = "http://www.baidu.com";var regExp = /http:\/\/\w+\.(.*)/;var results = regExp.exec(url);alert(results[1]);

//字符串中的match方法 和search方法

var email = "xiaogemeng123@163.com"var reg = /\.com/;  //判断邮箱是否包含.comvar matchRes = email.match(reg);alert(matchRes[0]);  //匹配到了 第一个值就是.com  没有匹配到 返回 nullvar searchRes = email.search(reg);  //返回的是匹配到了的第一个位置  没有匹配到返回-1alert(searchRes);

/===============操作符====================/
//1、 in
// 创建一个带属性的对象

var myObject = {  start : "yellow",  age : 18};function isAttributeOfObj() {  if("start" in  myObject){   //表示 start在myObject对象中属性存在    alert("start is a attribute of myObject");  }}isAttributeOfObj();

//2、instanceof

var time = new Date();if(time instanceof Date) {  //  do something}

//3、delete 删除某个对象的属性 或者数组的索引

var deleteArray = ["javascript_1","javascript_2","javascript_3"];delete  deleteArray[0];  //删除第一个索引的值

//删除某个对象的属性

//3、typeof 判断属于那种类型

var star = {};var numType = typeof(3);//返回number类型var stringType = typeof("aaa");//返回string类型var objType = typeof(star); //返回 "object"类型

//4、void

void(window.open()); //弹出一个新的窗口//比较运算符  == 比较内容   === b比较内容和类型
1 0
原创粉丝点击