javascript函数、对象及变量、正则表达式(7.19)

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”表示多行匹配

原文地址:https://www.cnblogs.com/jia-hui/p/5685813.html