JavaScript的函数和内置对象

1.js的函数

**在java里面定义方法
    public 返回值类型 void/int  方法名(参数列表){
        方法体;
        返回值;
    }
    public int add(int a,int b){
        int sum=a+b;
        return sum;
    }

**在JS里面定义函数的方法(方法)有三种方式
    ***1)函数的参数列表里面,不需要写var,直接写参数名称
       2)js的函数可以有返回值,直接使用return关键词返回即可,不需要声明返回值类型
      3)js没有方法的重载概念,后面定义的函数会覆盖前面所写的函数
      4)js中的形式参数和实际参数的数量可以是不一致,依然是可以调用。
      5)每个函数中都隐藏了一个叫arguments的数组,这个数组用来接收函数调用时传来的实际参数值
      6)arguments数组接受完实际参数后,会逐一的依次从左往右赋值给形式参数
        如果是实际参数的参数数量大于形式参数,则丢弃剩下的实际参数
    实际参数<形式参数: NaN
    实际参数>形式参数:取了前面的实际参数后面的参数丢弃。

    注意:表单接收的数据全部为string类型
    string比较number  string会先自动转换成number然后在进行比较;

    定义对象
方式一  
有参数的构造函数
    function 对象名称(形式参数){
        定义属性:
        定义方法:
    }
例:
function Person(name,age){  this 表示当前调用的对象
    //定义属性  赋值
    this.name=name;
    this.age=age;
    //定义方法
    this.say=function(){
        alert("这是一个对象的方法");
    }
}   
var     变量名=new  对象名称
//创建一个对象
var  p=new Person("狗娃",14);
//查看属性值
document.write(p.name);
document.write(p.age);
//调用方法  
p.say();

//使用for-in 遍历对象
for(var i in p){
document.write(p[i]+"<br/>");

方式二 
无参数的后遭函数
定义对象
function Person(){

}
//创建对象
var p=new Person();
//追加属性
p.name="zjj";
p.age=14;
//追加方法
p.say=function(){
        alert("++");
}

第三种方式 
 使用内置对象 Object对象可以作为任意对象的摸版

/*
创建对象
var p=new Object(); 
*/
//追加属性
p.name="zjj";
p.age=14;
//追加方法
p.say=function(){
        alert("++");
}           

方式四  使用字面常量的形式创建对象   json语言 
 var p={
    //定义属性
    **每个属性用逗号分开
      属性名用引号引上
     属性名和属性值用:
    最后一个不用逗号隔开
    属性名 属性值
    “name”:“铁蛋",(逗号)
    "age":20,
    "say":function(){
        alert("');
    }
}

使用原型属性给Array对象添加方法
什么是原型
    1)js的每个对象中包含有了原型属性(prototype)
    2)如果往某个对象的原型属添加了方法,那么添加的这个方法就会自动的添加到当前的
    对象的方法中。
    3)原型的作用:给内置对象追加方法

    function Array(){
        //属性
        this.prototype=new Prototype();//原型对象伪代码
        this.search=function(){
        }       
    }
    function Prototype(){
        this.search=function(){

        }
    }
    语法:
    /*
    给Array追加一个search和max方法
    */
    Array.prototype.search=function(traght){
        for(var i=0;i<this.length;i++){
        if(this[i]==traght){
        return 1;
        }
       }
        return -1;  
    }

    js函数

    第一种方式:
        ****使用到一个关键字,function
        ***function 方法名(形式参数列表){
            方法体;
            返回值可有可无(根据实际需求);
        }
        代码
        使用第一种方式
        function test(){
            alert("sghjak");
        }
        //调用法法
        test(实际参数列表);
        //定义一个有参数的方法 实现俩个数的相加
        function add1(a,b){
            var sum=a+b;
            alert(sum);
        }
        //add(2,3);
        //有返回值得效果
        function add2(a,b){
            var sum=a+b;
            return sum;
        }
        alert(add2(3,4,5));
        第二种方式
            ****匿名函数
                var add=function(参数列表){
                    方法体和返回值;
                    }
                ***代码
                //第二种方式创建的函数
                var add3=function(m,n){
                    alert(m+n);
                    }
                //调用方法
                add3(4,5);
            第三种方式;(用的较少,了解)
                ****动态函数
                ***使用JS里面的一个内置对象 Function
                    var add=new Function("参数列表","'方法体和返回值");
                **代码
                var canshu="x,y";
                var fahgfati="var sum; sum=x+y;return sum;";
                var add3=new Function(canshu,fangfati);
                alert(add3(4,5));

2.String对象

***属性 length字符串的长度
***方法
    var str1=new String("hello");
    var str2=new String("hello");
    valueof();该方法返回对象的内容是否相等
    str1.valueof()==str2.valueof();
    str1==str2  false
    var str="abc";
    var str2="abc";
    str1==str2  true;
    (1)与HTML相关的方法
        -bold():加粗
        -fontcolor:设置字符串的颜色
        -fontsize():设置字体的大小

        -link():将字符串显示成超链接
            ***str4.link("hello.html");
        -sub()  sup() :下标和上标
    (2)与java相似的方法
        -fontcolor();直接给字符串添加颜色
        document.write(str.fontcolor("#0000ff");(红绿蓝)
        -concat():连接字符串
            **//concat方法
            var str1="abc";
            var str1="dfg";
            document.write(str1.concat(str2));
        -chadAt():返回指定位置的字符串
            **var str1="abcfegh";
            document.write(str1.charAt(20);//字符串位置不存在,返回空字符串
        -indexOf(): 返回字符串位置
            **var str="abcfegh";
            document.write(str.indexof("w")); //字符不存在,返回 -1
        -split:切割字符串,成数组
            **var str="a-b-c-f-e-g-h";
            var ar1=str.split("-");
            document.write(arr1.length);
        -replace(); 替换字符串
            *传递俩个参数
                --第一个参数时原始字符
                --要替换成的字符
            ***var str="abcfegh";
            document.write(str.replace("a","Q");
        -substr(start,length)和 substring( start,end)
            **var str="abcfeghsdfs";
            //document.write(str.substr(5,5);  //返回从第五位开始,向后截取五个字符
                    **从第几位开始,向后截取几位
            document.write(str.substring(3,5);  //从第几位开始到第几位结束 [3 ,5)
                **从第几位开始,到第几位结束,但是不包含最后一位

3.number对象

 方式一 :定义一个number对象
    var num1=new  Number(20);
    var num2=new  Number(20);
    num1==num2;   false;
    num1.valueof()==num2.valueof();  true;
方式二
    var num1=20;
    var num2=20;
    num1==num2;  true

    var   b1=new Boolean(true);
    var   b2=new Boolean(true);
    b1==nb2;   false;
    b1.valueof()==b2.valueof();  true;

4.Array对象

**什么是数组?
    **使用变量  var m=10;
    **java里面的数组的定义 int[] arr={1,2,3};
**定义方式(三种)
    第一种:  var arr=[1,2,3];
    第二种 使用内置对象 Array对象
        var arr1=new Array(5);//定义一个数组,数组的长度是五
        arr1[0]="1";
    第三种:使用内置对象Array
        var arr2=new Array(3,4,5);//定义一个数组,数组里面的元素是3,4,5
    *数组里面有一个属性 length 获取到数组的长度
        alert(arr3.length);
    *数组可以存放不同的数据类型的数据。
**创建数组(三种)
/*
数组的长度会随着元素的添加而变化的,不用担心会出现索引位置越界异常
js的可以存放任意类型的元素
*/
- var arr=[10,“hello”,true ];
var arr=new Array();
        arr[1]="a";
        arr[2]="b";
        arr[3]="c";
-var arr=new Array(3);//长度为3的数组
-var arr=new Array(3,4,5);//数组中的元素是3,4,5
**属性:length 查看数组的长度
**方法
    -concat()方法:数组的连接
        var arr=[1,2,3];
        var arr1=[,5,6];
        document.write(arr.concat(arr1));
    -join();使用指定的字符串,把数组的所有元素连接到一起,最终组成一个新的字符串。
        var arr=new Array();
            arr[1]="a";
            arr[2]="b";
            arr[3]="c";
            document.write(arr.join("-"));
            结果 a-b-c
    -push();向数组末尾添加元素,返回数组的新的长度
            **如果添加的是一个数组。这个时候把数组当成一个整体的字符串添加进去
            var arr=new Array();
            arr[1]="a";
            arr[2]="b";
            arr[3]="c";
            document。write(arr.push("gsdjkfsad");
    -pop():表示,删除最后一个元素,返回删除的那个元素
            var arr=["ff","fasdf","sdf","sdfaf"];
            document.write(arr.pop());
    -reverse():颠倒数组中的元素的顺序
            var arr=["ff","fasdf","sdf","sdfaf"];
            document。write(arr.reverse());

5.Date对象

在java里面获取当前时间   
Date data=new Date();//取当前的系统日期时间
java  :SimpleDateFormat对象 yyyy-mm-dd格式化
//格式 2018年1月14日  16时35分30秒

    //toLocaleString()
在JS里面获取当前时间
    var date=new Date()
    //获取当前时间
    document.write(date)
    //转化成习惯的格式
    data.toLocaleString();
**获取年的方法
    getFullYear();得到当前的年
*获取当前的月方法
    getMonth();获取当前的月
        ***返回的是 0~11月如果想要得到准确的值:加1;
**获取当前的星期
    getDay();星期。返回的是(0~6);
        外国朋友,把星期日作为一周的第一天,星期日返回的值是0
        而星期一到六返回的值是 1~6;
**获取当前的日
    getDate();获取当前的天
**获取当前的小时
    getHours() 获取小时
**获取当前的分钟
    getMinutes();分钟
**获取当前的秒
    getSeconds();秒
**获取毫秒数
    getTime()
    返回的是1970 1 1 至今的毫秒数
    **应用场景
        ***使用毫秒数处理缓存的效果(不有缓存)
            http://www.baidu.com?毫秒数    

6.Math对象

*数学的运算
里面的都是静态方法,使用可以直接使用Math.方法();
1)ceil(x);向上舍入  如果有小数的话,直接加一
2)floor(x);向下舍入 如果有小数部分的话,直接丢弃小数部分,保留整数位
3)round(x);四舍五入 
4)random()得到随机数(伪随机数) 0~1  【0 1) 
5)max() 返回最大值
6)min() 返回最小值
    得到0~9的随机数
        Math.random()*10
        Math.max(10,5,60);
        Math.min(10,50,-2);

7.js的全局函数

由于不属于任何一个对像,直接写名称使用
**eval() 执行JS代码(如果字符串是一个JS代码,使用方法直接执行)
******var str="alert("1234");";
eval(str);
**encodeURI();对字符进行编码
**decodeURI()对数字进行解码
encodeURIComponent()和decodeURICompoent();
**isNaN判断当前是否字符串是否是数字
    var str="asd";
    alert(isNaN(str));
    **如果是数字,返回false
    **如果不是数字返回true
**parseInt()类型转换
    varstr="123";
    document.write(parseInt(str));

8.js函数类似重载

**什么是重载?方法名相同,参数不同
JS的重载是否存在?不存在
    **调用一个一个方法
    **把存在的参数保存到一个叫 arguments数组里面
    **JS里面是否存在重载?(面试题目)
        (1)JS里面不存在重载
        (2)但是可以可以通过其它方式模拟重载的效果(通过arguments数组来实现)
            function add(){
                if(argumnets.length==2){
                    return argumnets[1]+arguments[2];
                    }
                else 
                    return 0;
                }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值