tips:
1.javascript中“()”是用来调用函数的;
2.javascript中“.”和“[]”访问对象的属性;
例如:objectName.propertyName
objectName[propertyName]
3.访问对象的方法
objectName.functionName()
4.在JavaScript中,可以通过类的实例化来创建对象(在JavaScript中,创建对象(即类的实例化)使用 new 关键字),也可以使用 对象字面量 直接创建对象。
一、类的定义和对象的创建(类的实例化来创建对象)
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>面向对象编程</title> </head> <script type="text/javascript"> //创建类 function student(name,color){ this.name=name;//创建属性 this.color=color;//创建属性 this.say= function () { //定义一个方法 return "我的名字是:" +this.name+",我的颜色是"+this.color+"。" } } //创建对象 var Demi=new student("黛米","白色"); Demi.say(); //动态添加属性和方法 Demi.tel="18209999999" Demi.run=function(){ return "我不喜欢跑步" } //测试 alert(Demi.tel+Demi.say()+Demi.run()); </script> <body> </body> </html>
二、使用 对象字面量 直接创建对象
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>通过字面量创建对象</title> </head> <script type="text/javascript"> var demi={ //创建对象 "name":"黛米",//创建属性 "color":"白色",//创建属性 "say":function(){return "我的名字是"+this.name+",我的颜色是:"+this.color}//创建方法 } demi.tel="1000099385" demi.run= function () { return "我不喜欢跑步"; } alert(demi.say()+demi.tel+demi.run()); </script> <body> </body> </html>
待解决问题:
1.underfine和null有什么区别?
2.为什么函数
3.全局变量和局部变量
如果一个变量不用var声明,就会变成全局变量,
由于JavaScript的函数可以嵌套,此时,内部函数可以访问外部函数定义的变量,反过来则不行:
这说明JavaScript的函数在查找变量时从自身函数定义开始,从“内”向“外”查找。如果内部函数定义了与外部函数重名的变量,则内部函数的变量将“屏蔽”外部函数的变量。
这说明JavaScript实际上只有一个全局作用域。任何变量(函数也视为变量),如果没有在当前函数作用域中找到,就会继续往上查找,最后如果在全局作用域中也没有找到,则报ReferenceError错误。
关于全局变量和局部变量及函数作用域问题:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>变量测试</title> <script type="text/javascript"> var x='000'; document.writeln(x);//输出000; a(); function a(){ var x='aaa'; function b(){ document.writeln(x); var x='bbb'; document.writeln(x); } b(); document.writeln(x); } </script> </head> <body> </body> </html>
执行结果:000 undefined bbb aaa
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>变量测试2</title> </head> <script type="text/javascript"> var x='000'; document.writeln(x);//输出000; a(); function a(){ function b(){ document.writeln(x);//输出111 document.writeln(x);//输出111 } document.writeln(x);//输出结果是underfine; var x='111'; b(); } </script> <body> </body> </html>
执行结果:000 undefined 111 111
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>变量测试3</title> </head> <script type="text/javascript"> document.writeln(a);//输出underfine var a=0; </script> <body> </body> </html>
执行结果:undefined
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>变量测试4</title> </head> <script type="text/javascript"> document.writeln(a);//没有输出值; </script> <body> </body> </html>
执行结果:没有任何输出值
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>变量测试5</title> </head> <script type="text/javascript"> var scope = "global"; function f() { alert(scope); var scope = "local"; alert(scope); } f(); </script> <body> </body> </html>
执行结果:underfine,global
正则表达式
正则表达式RegExp(Regular Expression)使用单一字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式
1.创建正则表达式对象——创建RegExp对象
语法: new RegExp(pattern,attributes)
参数说明:
pattern | 必需字符串,指定了正则表达式的模式 |
attributes |
非必需,匹配修饰符,可以是"g","i","m",也可以是任意组合 “g”表示全局匹配,查找所有匹配,而不是在匹配完第一个后结束 “i”表示对大小写不敏感的匹配, “m”表示多行匹配 |