String类型,Function类型

1.String类型:
  1)创建String对象:
    var str=new String(s);
    String(s);
    参数:参数 s 是要存储在 String 对象中的值或转换成原始字符串的值。
    返回值:当String()和运算符new一起作为构造函数使用时,它返回一个新创建的String对象,存放的是字符串s
          当不用 new 运算符调用String()时,它只把 s 转换成原始的字符串,并返回转换后的值。

2)String对象属性:
    length:字符串的长度
    var str=‘abcde‘;
    alert(str.length);  //5

3)字符串操作:
    --replace():替换字符串中与正则表达式匹配的子串
    --match():找到与字符串中一个或多个正则表达式匹配的项
    --search(): 查找/检索与正则表达式相匹配的值,返回字符串的索引下标
    --substring(): 提取字符串中两个指定的索引号之间的字符,做字符串截取
    --charAt(): 获取字符串中某个字符
    --split(): 以字符串中含有的某个符号分割字符串,返回数组
    --concat():连接字符串
    --trim():删除字符串前缀和后缀的所有空格,返回新的字符串(IE9及FF,Chrome等兼容)
    --slice():提取字符串的片断,并在新的字符串中返回被提取的部分
    --toLocaleLowerCase():按照本地方式把字符串转换为小写
    --toLocaleUpperCase():按照本地方式把字符串转换为大写
    --toLowerCase():把字符串转换为小写
    --toUpperCase():把字符串转换为大写

 var str=‘abcdef‘;
     str.search(‘b‘);    //1,返回字符串的索引下标
     str.search(‘m‘);    //-1,没有找到返回的是-1
     str.substring(2,5);    //cde,指定起始位置和结束位置时,返回的值不包括结束位置的字符
     str.substring(2);    //cdef,只指定起始位置时,默认截取到字符串末尾
     str.charAt(3);    //d,获取的这是字符串中的一个字符
     var str2=‘ab-cd-ef‘;
     str2.split(‘-‘);    //ab,cd,ef    返回数组

2.Function类型:
  我们所说的函数也是一个对象,每个函数都是Function类型的实例
  1)函数的定义:
   --使用函数声明语法定义:
     function sum(n1,n2){
        return n1+n2;
     }
   --使用函数表达式定义:通过sum变量就可以引用函数,末尾有分号,就像声明其他变量一样
     var sum=function sum(n1,n2){
        return n1+n2;
     };

2)对函数名的理解:函数名仅仅是指向函数的指针,函数名与包含对象指针的其他变量没有区别,
      也就是说一个函数可能有多个函数名,
      function sum(n1,n2){
        return n1+n2;
      }
      alert(sum(10,10));  //20
      var anotherSum=sum;
      alert(anotherSum(10,10)); //20
      sum=null;
      alert(anotherSum(10,10)); //20
    注:当使用不带圆括号的函数名是访问函数的指针,而非调用函数.
      上面的例子中,sum和anotherSum就指向了同一个函数,当其中一个和函数没有关系时,另外一个也可以正常调用函数

3)关于函数没有重载的理解:当声明两个函数名相同的函数时,则后面的函数会把前面的函数覆盖掉
      function sum(n1){
        return n1+10;
      }
      function sum(n1){
        return n1+20;
      }
      alert(sum(10)); //30

4)关于函数声明和函数表达式:
    --解析器在向执行环境中加载数据时,对函数声明和函数表达式并非一视同仁,解析器会先读取函数声明,

   使其在读取任何代码之前可以被访问到,而函数表达式必须等到解析器执行到它所在的代码行才能被执行
    1.一个函数声明.一个表达式,可以正常执行
      alert(sum(10,10));
      function sum(n1,n2){
        return n1+n2;
      }
    2.两句都是表达式,解析器会按顺序读取,所以在执行第一句时就会报错,下一句函数表达式不会执行,
      alert(sum(10,10));
      var sum=function(n1,n2){
        return n1+n2;
      }

5)函数内部属性:在函数内部有两个特殊的对象:arguments,this
    1.arguments:可变参/不定参--是所有参数组成的一个数组,每个参数是其中的一个元素,具有数组的性质
            arguments.length,arguments[1]
      写一个函数:
          css(oDiv,‘width‘);  //有两个参数时,获取oDiv样式
          css(oDiv,‘width‘,‘200px‘);  //有三个参数时,设置oDiv样式
          function css(){
              if(arguments.length==2){
                  return arguments[0].style[argument[1]];
              }else{
                  return argument[0].style[argument[1]]=arguments[2];
              }
          }
       或:用三个参数代替arguments,此时arguments[0]==obj,arguments[1]==name,arguments[2]==val
        css(oDiv,‘width‘);  //有两个参数时,获取oDiv样式
          css(oDiv,‘width‘,‘200px‘);  //有三个参数时,设置oDiv样式
          function css(obj,name,val){
              if(arguments.length==2){
                  return obj.style[name];
              }else{
                  return obj.style[name]=val;
              }
          }

2.this:当前函数/方法属于哪个对象this就指哪个对象
      oDiv.onclick=function(){
        this.style.background=‘red‘;   //当前函数属于oDiv,this就指oDiv
      }
      全局函数在没有具体对象的情况下直接调用时,this指的是window
      function show(){    //全局的函数/方法,属于window
            alert(this);
        }
      show();  //弹出[object window]
        ==>等价于:
        window.show=function(){
            alert(this);
        }
      show();  //弹出[object window]

6)函数属性和方法:ES中函数就是对象,因此函数也有属性和方法
     1.函数属性:
       --length:表示函数接收的参数的个数
       --prototype:对于ES中的引用类型而言,prototype保存了他们所有的方法,在原型中再具体介绍

2.函数方法:call(),apply():都是在特定的作用域中调用函数的方法,实际上等于设置函数体内this对象的值
      关于函数调用:
          function show(){
              alert(this);
          }
          show();    //弹出window
        平时的调用方法是简写的,函数调用完整的写法
        show.call();    //弹出window
        show.call(12);    //弹出12,call里面的值可以改变函数中的this
        ==>当函数有参数时,call里面的值既可以改变this,也可以改变传的参数,不过改变this的值必须放在第一位
        function show(a,b){
            alert(‘this的值是:‘+this+‘\na的值是:‘+a+‘\b的值是:‘b);
        }
        show.call(‘abc‘,12,3);    //this=abc,a=12,b=3

--apply()方法:有两个参数,一个是函数的作用域,另一个是参数数组/arguments
         function sum(sum1,sum2){
            return sum1+sum2;
         }
         function callSum1(sum1,sum2){
            return sum.apply(this,arguments);
         }
         function callSum2(sum1,sum2){
            return sum.apply(this,[sum1,sum2]);
         }
         alert(callSum1(10,10));  //20
         alert(callSum2(10,10));  //20
      注:1)apply()与call()方法:基本相同,但是区别在于接收参数的方式不同
            call()方法必须将传递的第二参数逐个写出来,而apply()方法可以arguments
         2)call()和apply()方法真正的用处在于:能够扩充函数赖以运行的作用域
            window.color=‘red‘;
            var temp={color:‘blue‘};
            function showColor(){
              alert(this.color);
            }
            showColor();   //red;
            showColor.call(this);  //red;
            showColor.call(window);  //red;
            showColor.call(temp);  //blue

时间: 2024-10-27 09:15:40

String类型,Function类型的相关文章

js中String转Date类型并比较大小

1.比较常用的方法,但繁琐: 主要使用Date的构造方法:Date(int year , int month , int day) Java代码   <script> var str1 = "2009-8-9"; var arr1 = str1.split("-"); var date1 = new Date(arr1[0],parseInt(arr1[1])-1,arr1[2]); var str2 = "2009-8-4"; va

后台返回字符串类型function的处理 (递归算法)

1 $(function(){ 2 3 $.ajax({ 4 type: "post", 5 url: "${ctx}/modules/fos/reference/echart", 6 //dataType:'json', 7 success: function(data) { 8 var option=$.parseJSON(data); 9 formatter(option); 10 var myChart = echarts.init(document.get

Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)

Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型java.util.Date dt = new Date();System.out.println(dt.toString());   //java.util.Date的含义long lSysTime1 = dt.getTime() / 1000;   //得到秒数,Date类型的getTime()返回毫秒数 2.由long类型转换成Date类型SimpleDat

Function类型(JS高程3)—— JS学习笔记2015-6-29(第70天)

Function 类型 函数是对象 具有属性和方法,函数名实际上是一个指向函数对象的指针 没有重载: 函数声明和函数表达式 函数声明: function sum (num1, num2){ return num1 + num2; } 函数表达式: var sum = function(num1, num2){ return num1 + num2; };       //  这里是有分号的 二者基本上没有太大的区别,值得注意的是,函数表达式后面是有分号的: 还有一点就是,函数声明之前是可以调用函

C++ - string类型转换int类型

string类型转换int类型 本文地址: http://blog.csdn.net/caroline_wendy C语言转换形式: ... std::string str; int i = atoi(str.c_str()); ... C++转换形式(C++11): ... std::string str; int i = std::stoi(str); ... 同样, 可以使用 stol(long), stof(float), stod(double) 等. 参考: http://en.cp

【js实例】Array类型的9个数组方法,Date类型的41个日期方法,Function类型

前文提要:[js实例]js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 7.位置方法 8.迭代方法 9.归并方法 在实例中介绍,实例如下 /* Array类型 js数组中的每一项可以用来保存任何类型的数据:js数组的大小是可以动态调整的 */ var colors = ["red", "blue", "green"];

8 Function类型

说起来 ECMAScript 中什么最有意思,我想那莫过于函数了--而有意思的根源,则在于函数实际上是对象. 每个函数都是 Function 类型的实例,与其他引用类型一样具有属性和方法. 定义函数常用的有几种方式? 方法一:定义 function sum (num1, num2) { return num1 + num2; } 方法二:表达式 var sum = function(num1, num2){ return num1 + num2; }; 还一种是: var sum = new F

转载自chaos_JS 的JavaScript中的Function类型浅析

1. Function类型是js中引用类型之一,每个函数实际上都是Function类型的实例对象,具有自己的属性和方法.正因为函数式对象,所以函数名实际上也是一个指向函数对象的指针. 2. 常用的函数定义方式 1. 函数声明: function sum(a , b ){ return a+b; } 2. 表达式: var sum = function(){ return a+b; }; //注意分号 //两种方式的区别: //解释器会率先读取函数声明,并使其在执行之前可以访问,而使用表达式则必须

9.Function类型

Function类型 学习要点:1.函数的声明方式2.作为值的函数3.函数的内部属性4.函数属性和方法 在ECMAScript中,Function(函数)类型实际上是对象,每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数时对象,因此函数名实际上也是一个指向函数对象的指针. 一.函数的声明方式 1.普通的函数声明function box(num1 , num2){ return num1 + num2;}; 2. 使用变量初始化函数var box = fun