zoukankan      html  css  js  c++  java
  • 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”表示多行匹配

  • 相关阅读:
    俞敏洪谈大学爱情:终于在清华说实话了
    人的有两面性
    冯亚丽,打造1500亿帝国的奇女子
    做企业就要有精气神
    当心!“饭桌教育”祸害你的孩子
    为何企业宁可高薪招人,也不给老员工加薪?
    住的离公司有多远,成长就有多难
    物理像素,逻辑像素,解决1px的问题
    移动端布局 + iscroll + 滚动事件
    移动端布局 + iscroll.js
  • 原文地址:https://www.cnblogs.com/jia-hui/p/5685813.html
Copyright © 2011-2022 走看看