zoukankan      html  css  js  c++  java
  • JS核心

    JS核心

    1.实例化对象

     objectName = new objectType (param1 [,param2] ...[,paramN])

      参数  objectName 新对象实例的名称。 

           objectType  对象类型。它必须是一个定义对象类型的函数。 

           param1...paramN  对象的属性值。这些属性是objectType 函数的参数。 

      示例 1:对象类型和对象实例

          function car(make, model, year) {

          this.make = make

          this.model = model

          this.year = year

          }

      实例化对象:mycar =new car("Eagle", "Talon TSi", 1993)

      示例 2: 对象属性就是另外一个对象。

      function person(name, age, sex) {

      this.name = name

       this.age = age

      this.sex = sex

       }

     rand = new person("Rand McNally", 33, "M")

      ken= new person("Ken Jones", 39, "M")

     function car(make, model, year, owner) {

      this.make = make;

      this.model = model;

      this.year = year;

      this.owner = owner;

     }

     car1= new car("Eagle", "Talon TSi", 1993, rand);

     car2= new car("Nissan", "300ZX", 1992, ken)

     car2.owner.name      //引用

    2.this关键字用于引用当前对象,通常情况下,方法中的 this 指调用它的对象。

    3.语句

      1)for..in 对一个对象的所有属性重复赋给一个特定变量,JavaScript 会对每个不同的属性都执行特定的语句。

       var array=[1,2,3,4,5];//定义一个数组,实现数组元素的遍历。

        用For...in实现

       for(var i in array){

       alert(array[i]);//数组的元素

        用for循环实现

       for(var i=0;i<array.length;i++){

       alert(array[i]);//数组的元素

        }

      2)delete语句:删除对象的属性,或者删除数组中的指定元素。

       delete objectName.property

       delete objectName[index]

       delete property

       注意:如果 delete 操作符成功的话,它就会将元素的属性设定为未定义;操作符总是返回未定义。

            你只能使用 delete 操作符删除对象属性或数组元素。你不能使用该操作符删除对象或变量。因此,你就只能在 with 语句中使用第三种格式,以便删除对象的属性。

      3)export //允许标明的脚本向其它标明或未标明的脚本提供属性、函数和对象。

        export name1, name2, ..., nameN

        export *

      4)import //允许脚本从标识的脚本中导入已经导出的属性、函数和对象。

        import objectName.name1, objectName.name2, ..., objectName.nameN

        import objectName.*

      5)with //为一组语句创建缺省的对象。在这一组语句中,任何不指定对象的属性引用都将被认为是缺省对象的。

        with (object){

       statements

        }

     例子:var a, x,y

          var r=10

          with (Math) {

          a = PI * r * r

          x = r * cos(PI)

          y = r * sin(PI/2)

         }  

    4.Array对象:

      构造函数:newArray( )

               new Array(size)

               new Array(element0, element1, ..., elementn)

      方法:

      1)array.concat(value, ...)  // 连接数组,要增加到array中的值,可以是任意多个。

         注:方法concat()将创建并返回一个新数组,这个数组是将所有参数都添加到array中生成的。它并不修改array。如果要进行concat()操作的参数是一个数组,那么添加的是数组中的元素,而不是数组。

         例子:var a =[1,2,3];

              a.concat(4, [5,[6,7]])  //返回[1,2,3,4,5,[6,7]]

      2)array.join( )     //将数组元素连接起来以构建一个字符串,—个字符串,通过把array的每个元素转换成字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成。

        array.join(separator)

         例子:a = newArray(1, 2, 3, "testing");

              s = a.join("+");  // s 是字符串"1+2+3+testing"

      3)Array.length //数组的长度

         注:数组的length属性总是比数组中定义的最后一个元素的下标大一。对于那些具有连续元素,而且以元素0开始的常规数组来说,属性length声明了数组中的元素个数。

    设置属性length的值可以改变数组的大小。如果设置的值比它的当前值小,数组将被截断,其尾部的元素将丢失。如果设置的值比它的当前值大,数组将增大,新元素被添加到数组尾部,它们的值为undefined。

      4)array.pop( ) //删除并返回数组的最后一个元素,方法pop()将删除array的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组,返回undefined。

      5)array.push(value, ...)  //给数组添加元素,要添加到array尾部的值,可以是一个或多个,返回指定的值添加到数组后的新长度,方法push()将把它的参数顺次添加到array的尾部。它直接修改array,而不是创建——个新的数组。方法push()和方法pop()用数组提供先进后出栈的功能。参阅“Array.pop()”

      6)array.reverse( )   //Array对象的方法reverse()将颠倒数组中元素的顺序。它在原数组上实现这一操作,即重排指定的array的元素,但并不创建新数组。如果对array有多个引用,那么通过所有引用都可以看到数组元素的新顺序。

        例子:a = newArray(1, 2, 3);    // a[0] == 1, a[2] ==3;

            a.reverse(  );          // Now a[0] == 3, a[2] == 1;

      7)Array.shift( )   //将array的第—个元素移出数组,返回那个元素的值,并且将余下的所有元素前移一位,以填补数组头部的空缺。如果数组是空的,shift()将不进行任何操作,返回undefined。注意,该方法不创建新数组,而是直接修改原有的数组。

    方法shift()和方法Array.pop()相似,只不过它在数组头部操作,而不是在尾部操作。该方法常常和unshift()一起使用。

      例子:var a =[1, [2,3], 4]

           a.shift(  );  // 返回 1; a = [[2,3], 4]

           a.shift(  );  // 返回 [2,3]; a = [4]

     8)array.slice(start, end) //回数组的一部分,或者说是一个子数组。返回的数组包含从start 开始到end之间的所有元素,但是不包括end所指的元素。如果没有指定end,返回的数组包含从start开始到原数组结尾的所有元素,该方法并不修改数组。如果想删除数组中的一段元素,应该使用方法Array.splice。

        例子:var a =[1,2,3,4,5];

             a.slice(0,3);    // 返回 [1,2,3]

     9)array.sort( )           //将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序。

       array.sort(orderfunc)   //按数字排序

     10)array.splice(start, deleteCount, value, ...)   //插入、删除或替换数组的元素;start:开始插入和(或)删除的数组元素的下标。deleteCount:从start开始,包括start所指的元素在内要删除的元素个数。value:要插人数组的零个或多个值,从start所指的下标处开始插入。如果从array中删除了元素,返回的是含有被删除的元素的数组。

        例子:var a =[1,2,3,4,5,6,7,8]

             a.splice(4);        // 返回 [5,6,7,8];a is [1,2,3,4]

     11)array.toLocaleString( )  //数组array的局部字符串表示;数组的方法toString()将返回数组的局部字符串表示。它首先调用每个数组元素的toLocaleString()方法,然后用地区特定的分隔符把生成的字符串连接起来,形成一个字符串。

       TypeError                //调用该方法时,如果对象不是Array,则抛出异常。

     12)array.unshift(value, ...)  //要插入数组头部的一个或多个值,返回值:数组的新长度,unshift()不创建新数组,而是直接修改原有的数组。

        例子:var a =[];             // a:[]

             a.unshift(1);           //a:[1]          返回 1

              a.unshift(22);          // a:[22,1]       返回 2

    5.Boolean对象:

      newBoolean(value) //构造函数

     Boolean(value) //转换函数

      注:当作为一个构造函数(带有运算符new)调用时,Boolean()将把它的参数转换成一个布尔值,并且返回一个包含该值的Boolean对象。如果作为一个函数(不带有运算符new)调用的,Boolean()只将它的参数转换成一个原始的布尔值,并且返回这个值。

     0、NaN、null、空字符串""和undefined都将转换成false。其他的原始值,除了false(但包括字符串"false"),以及其他的对象和数组都会被转换成true。

     toString( )   //根据Boolean对象代表的布尔值返回"true"或"false"。

     valueOf( )    //返回Boolean对象中存放的原始布尔值。

    6.Error对象:

      newError(  )

      newError(message)   //message 提供异常的详细信息的错误消息,可选;name:声明异常类型的字符串。对于Error类的实例和所有子类来说,该属性声明了用于创建实例的构造函数名。

      属性:error.message可以读取的错误消息;error.name 错误的类型;

      方法:Object.toString();

      例子:functionfactorial(x) {

           if (x < 0) throw new Error("factorial: x must be >= 0");

           if (x <= 1) return 1; else return x * factorial(x-1);

           }

           error.toString( )  //把Error对象转换成字符串

           new SyntaxError( )

           new SyntaxError(message)  //抛出该错误用来通知语法错误

           new RangeError(  )

           new RangeError(message)   //当一个值超出有效范围时发生的错误。主要有几种情况,一是数组长度为负数,二是Number对象的方法参数超出范围,以及函数堆栈超过最大值。

           new ReferenceError( )

           new ReferenceError(message) //引用一个不存在的变量时发生的错误,获将将一个值分配给无法分配的对象,比如对函数的运行结果或者this赋值。

           new TypeError(  )

           new TypeError(message)      //变量或参数不是预期类型时发生的错误。比如,对字符串、布尔值、数值等原始类型的值使用new命令,就会抛出这种错误,因为new命令的参数应该是一个构造函数。

           new URIError(  )

           new URIError(message)       //URI相关函数的参数不正确时抛出的错误,主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()这六个函数。

    7.Function对象:

     用法:1)充当Function对象的构造函数使用,用于结合new关键字构造一个新的Function对象。

              new Function( [ argName1 [, argName1 [, argNameN... [, funcBody ]]]])  eg:var sum = newFunction("x", "y", "return x + y;");

          2)当作普通函数使用,其行为与用法一(使用new关键字)完全一致,相当于用法一省略了new关键字。

              Function( [ argName1 [, argName1 [, argNameN... [, funcBody ]]]] )

              eg:var foo = Function('var name="CodePlayer";document.writeln(name);');

     arguments:属性是正在执行的函数的内置属性,返回该函数的arguments对象。arguments对象包含了调用该函数时所传入的实际参数信息(参数个数、参数值等)。

      属性:length属性,functionObject.length;返回实际传入的参数个数。                

           caller属性,functionObject.caller;返回当前函数的引用(匿名函数可以使用该属性实现递归调用),也就是调用当前函数的函数。

           0...n属性,以顺序索引访问传入的具体参数。例如,使用arguments[0]可以访问传入的第1个参数,arguments[1]可以访问传入的第2个参数。

     apply() 方法:functionObject.apply([ thisObj [, argsArray ]] );apply()函数用于调用当前函数functionObject,并可同时使用指定对象thisObj作为本次函数执行时函数内部的this指针引用。

      注:如果提供了argsArray参数,则该参数必须是一个数组,或者arguments对象。数组中的每个元素(arguments对象中的每个属性0...n)将按照顺序作为参数传入该函数。

         如果提供了argsArray参数,则必须提供thisObj参数。

      eg:var obj ={name: "李四", age: 20};

         // 更改内部的this指针引用对象为obj

         test.apply(obj); // [object Object] 李四 20

         function foo(a, b){

         document.writeln(this.name);   

         document.writeln(a);   

         document.writeln(b);   

         }

         // 改变this引用为obj,同时传递两个参数

         foo.apply(obj, [12, true]); // 李四 12 true

     call()方法:functionObject.call([ thisObj [, arg1 [, arg2 [, args...]]]] )

      注:该函数与Function对象的apply()函数作用相同,只不过call()函数是将Function对象的参数一个个分别传入,apply()函数是将Function对象的参数以一个数组或arguments对象的形式整体传入。

     eg:var obj = {name: "李四", age: 20};

        // 更改内部的this指针引用对象为obj

        test.call(obj); // [object Object] 李四 20

        function foo(a, b){

        document.writeln(this.name);   

        document.writeln(a);   

        document.writeln(b);   

        }

        // 改变this引用为obj,同时传递两个参数

        foo.call(obj, 12, true); // 李四 12 true

     toString()方法:object.toString()函数用于将当前对象以字符串的形式返回。  

      var date = new Date(2013, 7, 18, 23, 11, 59, 230);

      document.writeln( date.toString() ); // Sun Aug 18 2013 23:11:59 GMT+0800(中国标准时间)

    8.Math对象:

      方法:Math.PI 

           Math.abs( number )   //number的绝对值;

           Math.ceil( number )  //Math.ceil()函数用于返回大于或等于指定数字的最小整数,一般称为向上取整。

           Math.floor()         //函数用于返回小于或等于指定数字的最大整数,一般称为向下取整。

           Math.floor( number ) //函数用于返回小于或等于指定数字的最大整数,一般称为向下取整。

           Math.random( )       //函数用于返回介于 0 到 1 之间的伪随机数(不包括 1)。

     

    9.Number对象:

      用法:1)充当Number对象的构造函数使用,用于结合new关键字构造一个表示数值的Number对象。

             new Number( [ value ] )     eg:varnumObj4 = new Number( "CodePlayer" ); // NaN

          2)当作普通函数使用,将其它数据类型转换为Number数据类型的原始数值。简而言之,这是一个类型转换函数。

             Number( [ value ] )

      属性:Number.MAX_VALUE//属性返回JavaScript中可以表示的最大数值。其值约等于1.7976931348623157E+308。

           Number.MIN_VALUE //属性返回JavaScript中可以表示的最接近于0(但不等于0)的数。其值为5E-324。

           Number.NaN   //Number.NaN的值为Number类型,其值一般为NaN。属性是一个特殊值,用于表示算术表达式返回了非数字值,该属性为Number对象的一个只读属性(准确地说,是一个常量)。

           Number.NEGATIVE_INFINITY  //负的无穷大  {输出显示为-Infinity)

           Number.POSITIVE_INFINITY  //正的无穷大  (输出显示为Infinity)

      方法:numberObject.toExponential([ fractionalDigits ] )//函数返回一个字符串,该字符串以指数计数法表示当前数值。

        注:如果没有提供fractionDigits参数,则toExponential()方法将返回足够多位数字,以便唯一指定该数字。

           如果提供了参数,则参数fractionDigits必须介于 [0, 20] 之间,否则将报错。

           如果数字本身的小数位数大于参数fractionDigits,则根据第fractionDigits + 1位小数上的值进行四舍五入。

       eg:var num = 423.536;

           document.writeln( num.toExponential() ); // 4.23536e+2

           numberObject.toFixed( [ fractionalDigits ] )

        注:如果没有提供fractionDigits参数或其参数值为undefined,则fractionDigits参数将默认为0。

           如果提供了参数,则参数fractionDigits必须介于 [0, 20] 之间,否则将报错。

           如果数字本身的小数位数多于参数fractionDigits,则根据第fractionDigits + 1位小数上的值进行四舍五入。

           Number.toString( [ radix ])   //函数返回表示该数字的指定进制形式的字符串。

           注:参数radix支持 [2, 36] 之间的整数。例如:参数值为2,则表示二进制;为8,则表示八进制;为16,则表示十六进制。

           object.valueOf( )   //函数用于返回指定对象的原始值。

    10.Date对象:

       用法:1)Date( ) //当作普通函数使用,直接以字符串形式返回当前日期和时间。

            2)充当Date对象的构造函数使用,用于结合new关键字构造一个表示日期或时间的Date对象。Date()构造函数又有如下两种形式。

               // 形式一

               new Date( [ milliseconds ] )

               // 形式二

               new Date( year, month, day [, hours [, minutes [, seconds [, ms ]]]] )

        方法:date.getDate()  //getDate()函数用于使用当地时间返回当前Date对象中一个月第几天的值。也就是"年份-月份-日期"中"日期"的数值。例如:2013年7月15日,就返回15。

             eg:// 定义一个"1999-05-30 12:11:59 230"的Date对象

                var date2 = new Date(1999, 4,30, 12, 11, 59, 230);

                document.writeln( date2.getDate() ); // 30

             date.getDay( )   //函数用于使用当地时间返回当前Date对象中该天的星期值。

             eg.// 定义一个"2013-07-21"的Date对象

                var date = new Date(2013, 6, 21);

                // 星期天

               document.writeln( date.getDay() ); // 0

             date.getFullYear( )   // 函数用于使用当地时间返回当前Date对象中的年份值。也就是"年月日"中"年"的数值。例如:2013年7月15日,就返回2013;公元前123年5月12日,就返回-123。

             date.getTime( )       //函数用于使用当地时间返回当前Date对象中的时间值。该时间值表示从1970年1月1日午夜开始,到当前Date对象时,所经过的毫秒数,以格林威治时间为准。

             eg.// 定义一个"1970-01-01 08:00:00 000"的Date对象

                // 由于当前环境为北京GMT+8时区,所以与GMT有8个小时的差值

                var date2 = new Date(1970, 0, 1, 8);

                document.writeln( date2.getTime() ); // 0

              date.toLocaleDateString( )   //函数用于以字符串的形式返回当前Date对象。该字符串适用于宿主环境的当前区域设置(也就是说,已经过"本地化"处理,易于当地用户阅读),并且只包含"年月日"部分的短日期信息。

             eg.//定义一个"2013-07-21"的Date对象

                var date = new Date(2013, 6, 21, 13, 12, 59, 231);

                document.writeln( date.toLocaleDateString() );

             date.toLocaleString( ) //函数的返回值为String类型,返回一个表示该Date对象的"本地化"字符串,且包含年月日时分秒部分的日期信息。

             date.toTimeString( )   //以字符串的形式返回当前Date对象。该字符串只包含"时分秒"部分的时间信息。

    11.RegExp对象:

         正则表达式(英语:RegularExpression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

         搜索模式可用于文本搜索和文本替换。

        语法:1)直接量语法:/pattern/attributes  ;/正则表达式主体/修饰符(可选)

             2)new RegExp(pattern, attributes);attributes:一个可选的字符串,包含属性“g”、“i”和“m”,分别用于指定全局匹配、区分大小写的匹配和多行匹配;

        方法:search() 方法:

             1)search() 方法使用正则表达式

                var str = "Visit Runoob!";

                var n = str.search(/Runoob/i);   //输出6

             2)search() 方法使用字符串

                var str = "Visit Runoob!";

                var n = str.search("Runoob");

             replace() 方法:

             1)replace() 方法使用正则表达式

                var str = document.getElementById("demo").innerHTML;

                var txt = str.replace(/microsoft/i,"Runoob");

             2)replace() 方法使用字符串

        RegExp对象方法:

             1)test() 方法是一个正则表达式方法,test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

                eg:var patt = /e/;

                    patt.test("The best thingsin life are free!");

             2)exec()exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

               /e/.exec("The best things in life are free!");

    12.String对象:

        1)字符串查找:indexOf() 来定位字符串中某一个指定的字符首次出现的位置,没找到返回-1;

           var str="Hello world, welcome to the universe.";

           var n=str.indexOf("welcome");

        2)内容匹配:match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。

           var str="Hello world!";

           document.write(str.match("world") + "<br>");

        3)替换内容:replace() 方法在字符串中用某些字符替换另一些字符。

           str="Please visit Microsoft!"

           var n=str.replace("Microsoft","w3cschool");

        4)字符串大小写转换:字符串大小写转换使用函数 toUpperCase() / toLowerCase():

           var txt="Hello World!";      // String

           var txt1=txt.toUpperCase();   //txt1 文本会转换为大写

           var txt2=txt.toLowerCase();   //txt2 文本会转换为小写

        5)字符串转为数组:

           txt="a,b,c,d,e"   //String

           txt.split(",");   // 使用逗号分隔

           txt.split(" ");   // 使用空格分隔

           txt.split("|");   // 使用竖线分隔

        6)连接字符串:Array.concat( )

           var a = [1,2,3];

           a.concat(4, 5)          //返回[1,2,3,4,5]

        7)String.substr( ):返回一个子字符串;string.substr(start,length)

           var s = "abcdefg";

           s.substr(2,2);   // 返回"cd"

     

     

  • 相关阅读:
    python学习:设计一个算法将缺失的数字找出来。
    zabbix如何监控进程
    centos7 网桥的配置
    Zabbix 3.0 监控Web
    一个监控进程的脚本,若进程异常重启进程
    centos 6.8 下安装redmine(缺陷跟踪系统)
    iOS UICollectionView简单使用
    ios开发图片点击放大
    IOS中实现图片点击全屏预览
    iOS 中有用的开源库
  • 原文地址:https://www.cnblogs.com/231254971a/p/7259651.html
Copyright © 2011-2022 走看看