[JavaScript] 常用类

第二章 常用对象

2.1 Function对象

  1. 创建:

    1. function 方法名称(参数列表){};
      //例如
      function fun(a,b){
                  alert(a+b);
              };
      
      fun(3,4);//7
      //这种方式是我们常用的方式
      
    2. var 方法名 = function(参数列表){};
      //例如
      var fun2 = function(a,b){
                  alert(a+b);
              }
      
      fun2(3,4);//7
      //也很常用
      
    3. var fun = new Function(形式参数,方法体);
      //例如
      var fun1 = new Function("a","b","alert(a);");
      
      fun1(3,4);//3
      //但是这种方式不好用,了解就行
      
  2. 方法

  3. 属性:

    1. length: 形参的个数
  4. 特点:

    1. 方法定义的时候,形参的类型不用写

    2. 方法名就是指向在堆区对象的一个函数指针,其他的懂得都懂

    3. 就算方法有参数,我们也可以不输入 , 少输入甚至多输入 ,剩下的值都是默认赋一个undefined,不会报错

      • var fun2 = function(a,b){
                    alert(a+b);
                }
        
        fun2(3); //NaN
        fun2(3,4,5)//7
        
    4. 在方法声明中,有一个隐藏的内置对象(数组), arguments ,封装所有的实际参数(实际你输入进去的参数,不管你定义的参数有几个)

      • 利用这个特性我们可以搞一些事

      • //计算任意个数的和
        function add() {
            var sum = 0;
            for(let i  = 0; i<arguments.length; i++){
                sum+=arguments[i];
        
            alert(sum); 
        }
        add(3,3,3,3,3,3);//18
        
    5. 返回值类型不用声明 ,直接return就完事了

  5. 调用:方法名(参数);

2.2 Array对象

  1. 创建

    1. var arr = new Array(元素列表);
      
    2. var arr = new Array(默认长度);
      
    3. var arr = [元素列表];
      
    4. 创建举例

      1. var arr = new Array(1, 2, 3);
        
        var arr2 = new Array(5);
        
        var arr3 = [3, 4, 5, 6, 8];
        
        document.write(arr + "<br>");
        document.write(arr2 + "<br>");
        document.write(arr3 + "<br>");
        
        //运行结果
        1,2,3
        ,,,,
        3,4,5,6,8
        
        //我们直接输出arr的时候,输出的其实是字符串,相当于arr.join(",")
        
  2. 方法

    1. concat()	连接两个或更多的数组,并返回结果。
      
      join()	把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。//常用
      
      pop()	删除并返回数组的最后一个元素
      
      push()	向数组的末尾添加一个或更多元素,并返回新的长度。//常用
      
      reverse()	颠倒数组中元素的顺序。//
      
      shift()	删除并返回数组的第一个元素
      
      slice()	从某个已有的数组返回选定的元素
      
      sort()	对数组的元素进行排序
      
      splice()	删除元素,并向数组添加新元素。
      
      toSource()	返回该对象的源代码。
      
      toString()	把数组转换为字符串,并返回结果。//输出的时候默认调用这个方法
      
      toLocaleString()	把数组转换为本地数组,并返回结果。
      
      unshift()	向数组的开头添加一个或更多元素,并返回新的长度。
      
      valueOf()	返回数组对象的原始值
      
  3. 属性

    1. length: 数组的长度
  4. 特点

    1. 数组里面可以放任意元素,说实话感觉就是一个广义表
    2. 数组的长度是可以随时修改的 , 并不是确定的

2.3 date对象

  1. 创建

    1. var myDate=new Date()
      
  2. 常用方法

    • toLocalString(): 返回当前date对象对应的时间本地字符串格式
      
      getTime()	返回 197011 日至今的毫秒数。
      

2.4 Math对象

  1. 创建

    1. var xxx = Math.方法名();
      
  2. 常用方法

    • abs(x)	返回数的绝对值。
      
      acos(x)	返回数的反余弦值。
      
      asin(x)	返回数的反正弦值。
      
      atan(x)	以介于 -PI/2PI/2 弧度之间的数值来返回 x 的反正切值。
      
      atan2(y,x)	返回从 x 轴到点 (x,y) 的角度(介于 -PI/2PI/2 弧度之间)。
      
      ceil(x)	对数进行上舍入。
      
      cos(x)	返回数的余弦。
      
      exp(x)	返回 e 的指数。
      
      floor(x)	对数进行下舍入。
      
      log(x)	返回数的自然对数(底为e)。
      
      max(x,y)	返回 x 和 y 中的最高值。
      
      min(x,y)	返回 x 和 y 中的最低值。
      
      pow(x,y)	返回 x 的 y 次幂。
      
      random()	返回 0 ~ 1 之间的随机数。 //[0,1)
      
      round(x)	把数四舍五入为最接近的整数。
      
      sin(x)	返回数的正弦。
      
      sqrt(x)	返回数的平方根。
      
      tan(x)	返回角的正切。
      
      toSource()	返回该对象的源代码。
      
  3. 特点

    1. 不用创建,直接使用类名.方法名()的格式调用就行了
  4. 属性

    1. E	返回算术常量 e,即自然对数的底数(约等于2.718)。
      
      LN2	返回 2 的自然对数(约等于0.693)。
      
      LN10	返回 10 的自然对数(约等于2.302)。
      
      LOG2E	返回以 2 为底的 e 的对数(约等于 1.414)。
      
      LOG10E	返回以 10 为底的 e 的对数(约等于0.434)。
      
      PI	返回圆周率(约等于3.14159)。
      
      SQRT1_2	返回返回 2 的平方根的倒数(约等于 0.707)。
      
      SQRT2	返回 2 的平方根(约等于 1.414)。
      

2.5 RegExp 正则表达式对象

正则表达式

定义字符串的组成规则

  1. 单个字符
    1. 如: [a] (表示字符只能是a) , [ab] (表示字符是a或b) , [a-zA-Z0-9_] (表示字符可以是a到z,A到Z以及下划线)这个单个字符也叫做单个单词字符
    2. 当然,我们有一些特殊符号来表达某些单个字符
      1. \d : 单个数字字符 [0-9]
      2. \w : 单个单词字符[a-zA-Z0-9_]
  2. 量词符号
    1. ? : 表示出现0次或者1次
    2. *: 表示出现0次或者多次
    3. +: 表示出现1次或者多次
    4. {m,n}: 表示 m<= 出现的次数 <= n
      1. 这里如果m如果没有{,n},那么意思就是最多n次
      2. 这里如果没有n, {m,}, 那么意思就是最少有m次
  3. 开始结束符号
    1. ^ : 开始符号
    2. $ : 结束符号

**举例: 要求单词的长度在6-12 ,且由单词字符组成 **

答案就是 \w{6,12}

我们在约束表单数据的时候经常会使用到

注意: 正则表达式是一个通用的规则,例如Java,c++里面也是可以用这些的

正则对象

  1. 创建

    1. var reg  = new RegExp('正则表达式');
      
    2. var reg = /正则表达式/;  //这个是常用方法
      
  2. 方法

    1. //RegExp 对象方法
      compile(regexp,modifier)	编译正则表达式。	
      exec(string)	检索字符串中指定的值。返回找到的值,并确定其位置。	
      test(string)	检索字符串中指定的值。返回 truefalse
      
      //支持正则表达式的 String 对象的方法
      //下面方法的参数都可以是regExp
      search	检索与正则表达式相匹配的值。	
      
      match	找到一个或多个正则表达式的匹配。
      
      replace	替换与正则表达式匹配的子串。	
      
      split	把字符串分割为字符串数组。
      

例子:

// let reg = new RegExp("\\w{6,12}"); //注意这里是两个反斜线
let reg = /\w{6,12}/;

let aaa = "faslkdj";

let flag = reg.test(aaa);

alert(flag); //true

注意: 第一种写法,因为他包含在字符串里面,所以有可能**\w会被识别为转义字符,**,这不是我们想要的,因此,我们使用 \\ 这个在字符串中就代表\的意思,问题就解决了

2.6 Global对象

全局属性和函数可用于所有内建的 JavaScript 对象。

Global并不是这个对象的名称,全局对象实际上不是任何对象的属性,所以它没有名称

2.6.1 概述

  1. 特点: 这是一个全局对象,对象中封装的方法不需要对象就可以直接调用,直接方法名(),就可以直接调用

  2. 方法:

    1. decodeURI()	解码某个编码的 URIdecodeURIComponent()	解码一个编码的 URI 组件。
      
      encodeURI()	把字符串编码为 URIencodeURIComponent()	把字符串编码为 URI 组件。
      
      escape()	对字符串进行编码。
      
      
      eval()	计算 JavaScript 字符串,并把它作为脚本代码来执行。
      
      getClass()	返回一个 JavaObject 的 JavaClass。
      
      isFinite()	检查某个值是否为有穷大的数。
      
      isNaN()	检查某个值是否是数字。
      
      Number()	把对象的值转换为数字。
      
      parseFloat()	解析一个字符串并返回一个浮点数。
      
      parseInt()	解析一个字符串并返回一个整数。
      
      String()	把对象的值转换为字符串。
      
      unescape()	对由 escape() 编码的字符串进行解码。
      
      
  3. 属性

    1. Infinity	代表正的无穷大的数值。
      
      java	代表 java.* 包层级的一个 JavaPackage。
      
      NaN	指示某个值是不是数字值。
      
      Packages	根 JavaPackage 对象。
      
      undefined	指示未定义的值
      

2.6.2 URI编码

  1. 浏览器实际上是不支持上传中文的,所以说我们首先需要将我们的中文解码 , **然后用URI编码,**这样这些编码的数据就可以上传了,上传之后我们再解码,再编码,就完事了

  2. 如何编码的? 将每个字节(一个字节8bit)的数据转化为%和两个16进制的数

    1. 例如:

      let str = "我是你爹";
      
      let encode = encodeURI(str);
      
             document.write(encode);//%E6%88%91%E6%98%AF%E4%BD%A0%E7%88%B9 
      //我们发现上面这个是12个字节,因此我们还可以得出,原来的汉字使用utf-8编码的
      
      ///我们重新编码
      document.write(decodeURI(encode));//我是你爹
      
      

2.6.3 数字相关

parseInt(string)

按位逐一判断每一个字符是否是数字,直到不是数字为止,将前面的数字部分转为number

例子:

alert(parseInt("534qwf"));//534

alert(parseInt("qwf3245")); //NaN
isNaN()

NaN 不能用算数运算符===== 来确认,它六亲不认,不论和谁比较都是false

NaN == NaN //false

所以我们要借助这个全局方法来看看这个类型是不是NaN

alert(isNaN(NaN));//true
eval()

将JS的字符串转为脚本执行

let code = "alert('我是你爹')";

eval(code);// 我是你爹
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值